mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-27 06:04:40 +08:00
- Add Libre Computer boards into proper libre-computer board directory
- Add new Boards: - Libre Computer aml-s905d3-cc - Libre Computer aml-a311d-cc - Add capsule update to libretech-ac and the new boards since they have an onboard SPI nor flash - Fix HDMI support after sync to v6.11 and regulator enable from Marek - Fix khadas-vim3 android config for android-mainline kernel - Disable meson64 boot targets when configs are not eavailable -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEPVPGJshWBf4d9CyLd9zb2sjISdEFAmcM2SEACgkQd9zb2sjI SdEIVg/+L13M9cmUalXygG0T0duaOLdg9a65cqGkX6pOPGEE0MGiwsnXOakKijuf mIRHGHsiH/n6wGQSztZLiPp5m/g8VXxmrxjgU1nraZV1VaFgXTG0DQwuAGvY1XKh tvnejmELtPLP0UwSZFqJGWkTwLntz1vuysO1B2Xt/bUEOkufK9XhoKyjuyUSX2z2 KKZH9sDf9t3eWgtDxPuFDDL0sw/y610dBxIpYh/gHk24xE2TRM4S2ccVvQ1d+35B MtSzZauPsnBFRL5jMSJ0TbI42I9fzlRMjWTXHw3Yi469T07XBpn9oN/mZvufa4/j 3aJBRlC+miQZ+m0wfE1oL4AvmA/jxZDi5vhmDVZgd0Irzl390uuZnUfgFI3+cN1H Dzua+E/+6rx4BvUV2f6JBCAZwBBT80CMxu5MzKARIworkrK5u2eXZbcN6kJ0GjBg Um/c+RrUfgDpfoNLoQ3T0oIqOmdItK+LE07hHHe+aM5JlOOhr5e8n3L3pJMeroyQ ckJ4mEKA8ly6a72YVxsfc+sa453qH5p3QHXfvlSuP7l4zjm1F5MELRtGHlR8JXUS hbWx3P0ZB7ynJvoONXriIoypff8ZGavgQfoRTupCQfPvB5dh7hJTBKGBZABeXY4R caYDBmsZ2Nuk8Co0HwBmLq3Bx2dqehG7Mip95R9B4zNH42gPhqk= =oq4w -----END PGP SIGNATURE----- Merge tag 'u-boot-amlogic-next-20241014' of https://source.denx.de/u-boot/custodians/u-boot-amlogic - Add Libre Computer boards into proper libre-computer board directory - Add new Boards: - Libre Computer aml-s905d3-cc - Libre Computer aml-a311d-cc - Add capsule update to libretech-ac and the new boards since they have an onboard SPI nor flash - Fix HDMI support after sync to v6.11 and regulator enable from Marek - Fix khadas-vim3 android config for android-mainline kernel - Disable meson64 boot targets when configs are not eavailable
This commit is contained in:
commit
c676fc3710
@ -17,10 +17,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
&canvas {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&vpu {
|
||||
reg = <0x0 0xff900000 0x0 0x100000>,
|
||||
<0x0 0xff63c000 0x0 0x1000>,
|
||||
|
15
arch/arm/dts/meson-g12b-a311d-libretech-cc-u-boot.dtsi
Normal file
15
arch/arm/dts/meson-g12b-a311d-libretech-cc-u-boot.dtsi
Normal file
@ -0,0 +1,15 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright (c) 2023 Neil Armstrong <neil.armstrong@linaro.org>
|
||||
*/
|
||||
|
||||
#include "meson-g12-common-u-boot.dtsi"
|
||||
|
||||
&sd_emmc_c {
|
||||
pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_4b_pins>;
|
||||
bus-width = <4>;
|
||||
};
|
||||
|
||||
&spifc {
|
||||
status = "okay";
|
||||
};
|
15
arch/arm/dts/meson-sm1-s905d3-libretech-cc-u-boot.dtsi
Normal file
15
arch/arm/dts/meson-sm1-s905d3-libretech-cc-u-boot.dtsi
Normal file
@ -0,0 +1,15 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright (c) 2023 Neil Armstrong <neil.armstrong@linaro.org>
|
||||
*/
|
||||
|
||||
#include "meson-g12-common-u-boot.dtsi"
|
||||
|
||||
&sd_emmc_c {
|
||||
pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_4b_pins>, <&emmc_ds_pins>;
|
||||
bus-width = <4>;
|
||||
};
|
||||
|
||||
&spifc {
|
||||
status = "okay";
|
||||
};
|
@ -5,11 +5,9 @@ L: u-boot-amlogic@groups.io
|
||||
F: board/amlogic/p212/
|
||||
F: include/configs/p212.h
|
||||
F: configs/khadas-vim_defconfig
|
||||
F: configs/libretech-ac_defconfig
|
||||
F: configs/libretech-cc_defconfig
|
||||
F: configs/libretech-cc_v2_defconfig
|
||||
F: configs/p212_defconfig
|
||||
F: doc/board/amlogic/p212.rst
|
||||
F: doc/board/amlogic/libretech-ac.rst
|
||||
F: doc/board/amlogic/libretech-cc.rst
|
||||
F: doc/board/amlogic/khadas-vim.rst
|
||||
|
7
board/libre-computer/aml-a311d-cc/MAINTAINERS
Normal file
7
board/libre-computer/aml-a311d-cc/MAINTAINERS
Normal file
@ -0,0 +1,7 @@
|
||||
LIBRE-COMPUTER AML-A311D-CC
|
||||
M: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
S: Maintained
|
||||
L: u-boot-amlogic@groups.io
|
||||
F: board/amlogic/aml-a311d-cc/
|
||||
F: configs/aml-a311d-cc_defconfig
|
||||
F: doc/board/amlogic/aml-a311d-cc.rst
|
6
board/libre-computer/aml-a311d-cc/Makefile
Normal file
6
board/libre-computer/aml-a311d-cc/Makefile
Normal file
@ -0,0 +1,6 @@
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
# (C) Copyright 2016 BayLibre, SAS
|
||||
# Author: Neil Armstrong <narmstrong@baylibre.com>
|
||||
|
||||
obj-y := aml-a311d-cc.o
|
44
board/libre-computer/aml-a311d-cc/aml-a311d-cc.c
Normal file
44
board/libre-computer/aml-a311d-cc/aml-a311d-cc.c
Normal file
@ -0,0 +1,44 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright (C) 2016 BayLibre, SAS
|
||||
* Author: Neil Armstrong <narmstrong@baylibre.com>
|
||||
*/
|
||||
|
||||
#include <dm.h>
|
||||
#include <env.h>
|
||||
#include <init.h>
|
||||
#include <net.h>
|
||||
#include <efi_loader.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/eth.h>
|
||||
|
||||
struct efi_fw_image fw_images[] = {
|
||||
{
|
||||
.fw_name = u"AML_A311D_CC_BOOT",
|
||||
.image_index = 1,
|
||||
},
|
||||
};
|
||||
|
||||
struct efi_capsule_update_info update_info = {
|
||||
.dfu_string = "sf 0:0=u-boot-bin raw 0 0x10000",
|
||||
.num_images = ARRAY_SIZE(fw_images),
|
||||
.images = fw_images,
|
||||
};
|
||||
|
||||
|
||||
#if IS_ENABLED(CONFIG_SET_DFU_ALT_INFO)
|
||||
void set_dfu_alt_info(char *interface, char *devstr)
|
||||
{
|
||||
if (strcmp(interface, "ram") == 0)
|
||||
env_set("dfu_alt_info", "fitimage ram 0x08080000 0x4000000");
|
||||
else if (IS_ENABLED(CONFIG_EFI_HAVE_CAPSULE_SUPPORT))
|
||||
env_set("dfu_alt_info", update_info.dfu_string);
|
||||
}
|
||||
#endif
|
||||
|
||||
int misc_init_r(void)
|
||||
{
|
||||
meson_generate_serial_ethaddr();
|
||||
|
||||
return 0;
|
||||
}
|
8
board/libre-computer/aml-s805x-ac/MAINTAINERS
Normal file
8
board/libre-computer/aml-s805x-ac/MAINTAINERS
Normal file
@ -0,0 +1,8 @@
|
||||
LIBRE-COMPUTER AML-S805X-AC
|
||||
M: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
S: Maintained
|
||||
L: u-boot-amlogic@groups.io
|
||||
F: board/amlogic/aml-s805x-ac/
|
||||
F: include/configs/libretech-ac.h
|
||||
F: configs/libretech-ac_defconfig
|
||||
F: doc/board/amlogic/libretech-ac.rst
|
6
board/libre-computer/aml-s805x-ac/Makefile
Normal file
6
board/libre-computer/aml-s805x-ac/Makefile
Normal file
@ -0,0 +1,6 @@
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
# (C) Copyright 2016 BayLibre, SAS
|
||||
# Author: Neil Armstrong <narmstrong@baylibre.com>
|
||||
|
||||
obj-y := aml-s805x-ac.o
|
71
board/libre-computer/aml-s805x-ac/aml-s805x-ac.c
Normal file
71
board/libre-computer/aml-s805x-ac/aml-s805x-ac.c
Normal file
@ -0,0 +1,71 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright (C) 2016 BayLibre, SAS
|
||||
* Author: Neil Armstrong <narmstrong@baylibre.com>
|
||||
*/
|
||||
|
||||
#include <dm.h>
|
||||
#include <env.h>
|
||||
#include <init.h>
|
||||
#include <net.h>
|
||||
#include <efi_loader.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/gx.h>
|
||||
#include <asm/arch/sm.h>
|
||||
#include <asm/arch/eth.h>
|
||||
#include <asm/arch/mem.h>
|
||||
|
||||
#define EFUSE_SN_OFFSET 20
|
||||
#define EFUSE_SN_SIZE 16
|
||||
#define EFUSE_MAC_OFFSET 52
|
||||
#define EFUSE_MAC_SIZE 6
|
||||
|
||||
struct efi_fw_image fw_images[] = {
|
||||
{
|
||||
.fw_name = u"AML_S805X_AC_BOOT",
|
||||
.image_index = 1,
|
||||
},
|
||||
};
|
||||
|
||||
struct efi_capsule_update_info update_info = {
|
||||
.dfu_string = "sf 0:0=u-boot-bin raw 0 0x10000",
|
||||
.num_images = ARRAY_SIZE(fw_images),
|
||||
.images = fw_images,
|
||||
};
|
||||
|
||||
#if IS_ENABLED(CONFIG_SET_DFU_ALT_INFO)
|
||||
void set_dfu_alt_info(char *interface, char *devstr)
|
||||
{
|
||||
if (strcmp(interface, "ram") == 0)
|
||||
env_set("dfu_alt_info", "fitimage ram 0x08080000 0x4000000");
|
||||
else if (IS_ENABLED(CONFIG_EFI_HAVE_CAPSULE_SUPPORT))
|
||||
env_set("dfu_alt_info", update_info.dfu_string);
|
||||
}
|
||||
#endif
|
||||
|
||||
int misc_init_r(void)
|
||||
{
|
||||
u8 mac_addr[EFUSE_MAC_SIZE + 1];
|
||||
char serial[EFUSE_SN_SIZE + 1];
|
||||
ssize_t len;
|
||||
|
||||
if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
|
||||
len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
|
||||
mac_addr, EFUSE_MAC_SIZE);
|
||||
mac_addr[len] = '\0';
|
||||
if (len == EFUSE_MAC_SIZE && is_valid_ethaddr(mac_addr))
|
||||
eth_env_set_enetaddr("ethaddr", mac_addr);
|
||||
else
|
||||
meson_generate_serial_ethaddr();
|
||||
}
|
||||
|
||||
if (!env_get("serial#")) {
|
||||
len = meson_sm_read_efuse(EFUSE_SN_OFFSET, serial,
|
||||
EFUSE_SN_SIZE);
|
||||
serial[len] = '\0';
|
||||
if (len == EFUSE_SN_SIZE)
|
||||
env_set("serial#", serial);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
7
board/libre-computer/aml-s905d3-cc/MAINTAINERS
Normal file
7
board/libre-computer/aml-s905d3-cc/MAINTAINERS
Normal file
@ -0,0 +1,7 @@
|
||||
LIBRE-COMPUTER AML-S905D3-CC
|
||||
M: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
S: Maintained
|
||||
L: u-boot-amlogic@groups.io
|
||||
F: board/amlogic/aml-s905d3-cc/
|
||||
F: configs/aml-s905d3-cc_defconfig
|
||||
F: doc/board/amlogic/aml-s905d3-cc.rst
|
6
board/libre-computer/aml-s905d3-cc/Makefile
Normal file
6
board/libre-computer/aml-s905d3-cc/Makefile
Normal file
@ -0,0 +1,6 @@
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
# (C) Copyright 2016 BayLibre, SAS
|
||||
# Author: Neil Armstrong <narmstrong@baylibre.com>
|
||||
|
||||
obj-y := aml-s905d3-cc.o
|
44
board/libre-computer/aml-s905d3-cc/aml-s905d3-cc.c
Normal file
44
board/libre-computer/aml-s905d3-cc/aml-s905d3-cc.c
Normal file
@ -0,0 +1,44 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright (C) 2016 BayLibre, SAS
|
||||
* Author: Neil Armstrong <narmstrong@baylibre.com>
|
||||
*/
|
||||
|
||||
#include <dm.h>
|
||||
#include <env.h>
|
||||
#include <init.h>
|
||||
#include <net.h>
|
||||
#include <efi_loader.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/eth.h>
|
||||
|
||||
struct efi_fw_image fw_images[] = {
|
||||
{
|
||||
.fw_name = u"AML_S905D3_CC_BOOT",
|
||||
.image_index = 1,
|
||||
},
|
||||
};
|
||||
|
||||
struct efi_capsule_update_info update_info = {
|
||||
.dfu_string = "sf 0:0=u-boot-bin raw 0 0x10000",
|
||||
.num_images = ARRAY_SIZE(fw_images),
|
||||
.images = fw_images,
|
||||
};
|
||||
|
||||
|
||||
#if IS_ENABLED(CONFIG_SET_DFU_ALT_INFO)
|
||||
void set_dfu_alt_info(char *interface, char *devstr)
|
||||
{
|
||||
if (strcmp(interface, "ram") == 0)
|
||||
env_set("dfu_alt_info", "fitimage ram 0x08080000 0x4000000");
|
||||
else if (IS_ENABLED(CONFIG_EFI_HAVE_CAPSULE_SUPPORT))
|
||||
env_set("dfu_alt_info", update_info.dfu_string);
|
||||
}
|
||||
#endif
|
||||
|
||||
int misc_init_r(void)
|
||||
{
|
||||
meson_generate_serial_ethaddr();
|
||||
|
||||
return 0;
|
||||
}
|
108
configs/aml-a311d-cc_defconfig
Normal file
108
configs/aml-a311d-cc_defconfig
Normal file
@ -0,0 +1,108 @@
|
||||
CONFIG_ARM=y
|
||||
CONFIG_SYS_VENDOR="libre-computer"
|
||||
CONFIG_SYS_BOARD="aml-a311d-cc"
|
||||
CONFIG_ARCH_MESON=y
|
||||
CONFIG_TEXT_BASE=0x01000000
|
||||
CONFIG_NR_DRAM_BANKS=1
|
||||
CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
|
||||
CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x20000000
|
||||
CONFIG_ENV_SIZE=0x2000
|
||||
CONFIG_ENV_OFFSET=0xFFFF0000
|
||||
CONFIG_ENV_SECT_SIZE=0x10000
|
||||
CONFIG_DM_GPIO=y
|
||||
CONFIG_DEFAULT_DEVICE_TREE="amlogic/meson-g12b-a311d-libretech-cc"
|
||||
CONFIG_OF_LIBFDT_OVERLAY=y
|
||||
CONFIG_DM_RESET=y
|
||||
CONFIG_MESON_G12A=y
|
||||
CONFIG_DEBUG_UART_BASE=0xff803000
|
||||
CONFIG_DEBUG_UART_CLOCK=24000000
|
||||
CONFIG_IDENT_STRING="aml-a311d-cc"
|
||||
CONFIG_SYS_LOAD_ADDR=0x1000000
|
||||
CONFIG_DEBUG_UART=y
|
||||
CONFIG_REMAKE_ELF=y
|
||||
CONFIG_FIT=y
|
||||
CONFIG_FIT_SIGNATURE=y
|
||||
CONFIG_FIT_VERBOSE=y
|
||||
CONFIG_LEGACY_IMAGE_FORMAT=y
|
||||
CONFIG_OF_BOARD_SETUP=y
|
||||
# CONFIG_DISPLAY_CPUINFO is not set
|
||||
CONFIG_MISC_INIT_R=y
|
||||
CONFIG_SYS_MAXARGS=32
|
||||
# CONFIG_CMD_BDI is not set
|
||||
# CONFIG_CMD_IMI is not set
|
||||
CONFIG_CMD_DFU=y
|
||||
CONFIG_CMD_NVEDIT_EFI=y
|
||||
CONFIG_CMD_GPIO=y
|
||||
# CONFIG_CMD_LOADS is not set
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_SF_TEST=y
|
||||
CONFIG_CMD_SPI=y
|
||||
CONFIG_CMD_USB=y
|
||||
CONFIG_CMD_USB_MASS_STORAGE=y
|
||||
CONFIG_CMD_EFIDEBUG=y
|
||||
# CONFIG_CMD_SETEXPR is not set
|
||||
CONFIG_CMD_REGULATOR=y
|
||||
CONFIG_OF_CONTROL=y
|
||||
CONFIG_ENV_IS_IN_SPI_FLASH=y
|
||||
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
CONFIG_ADC=y
|
||||
CONFIG_SARADC_MESON=y
|
||||
CONFIG_BUTTON=y
|
||||
CONFIG_BUTTON_ADC=y
|
||||
CONFIG_DFU_RAM=y
|
||||
CONFIG_DFU_SF=y
|
||||
CONFIG_SET_DFU_ALT_INFO=y
|
||||
CONFIG_MMC_MESON_GX=y
|
||||
CONFIG_MTD=y
|
||||
CONFIG_DM_MTD=y
|
||||
CONFIG_DM_SPI_FLASH=y
|
||||
CONFIG_SPI_FLASH_GIGADEVICE=y
|
||||
CONFIG_SPI_FLASH_SPANSION=y
|
||||
CONFIG_PHY_REALTEK=y
|
||||
CONFIG_DM_MDIO=y
|
||||
CONFIG_DM_MDIO_MUX=y
|
||||
CONFIG_ETH_DESIGNWARE_MESON8B=y
|
||||
CONFIG_MDIO_MUX_MESON_G12A=y
|
||||
CONFIG_MESON_G12A_USB_PHY=y
|
||||
CONFIG_PINCTRL=y
|
||||
CONFIG_PINCTRL_MESON_G12A=y
|
||||
CONFIG_POWER_DOMAIN=y
|
||||
CONFIG_MESON_EE_POWER_DOMAIN=y
|
||||
CONFIG_DM_REGULATOR=y
|
||||
CONFIG_DM_REGULATOR_FIXED=y
|
||||
CONFIG_DEBUG_UART_ANNOUNCE=y
|
||||
CONFIG_DEBUG_UART_SKIP_INIT=y
|
||||
CONFIG_MESON_SERIAL=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_DM_SPI=y
|
||||
CONFIG_MESON_SPIFC=y
|
||||
CONFIG_SYSINFO=y
|
||||
CONFIG_SYSINFO_SMBIOS=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_DM_USB_GADGET=y
|
||||
CONFIG_USB_XHCI_HCD=y
|
||||
CONFIG_USB_XHCI_DWC3=y
|
||||
CONFIG_USB_DWC3=y
|
||||
# CONFIG_USB_DWC3_GADGET is not set
|
||||
CONFIG_USB_DWC3_MESON_G12A=y
|
||||
CONFIG_USB_KEYBOARD=y
|
||||
CONFIG_USB_GADGET=y
|
||||
CONFIG_USB_GADGET_VENDOR_NUM=0x1b8e
|
||||
CONFIG_USB_GADGET_PRODUCT_NUM=0xfada
|
||||
CONFIG_USB_GADGET_DWC2_OTG=y
|
||||
CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8=y
|
||||
CONFIG_USB_GADGET_DOWNLOAD=y
|
||||
CONFIG_VIDEO=y
|
||||
# CONFIG_VIDEO_BPP8 is not set
|
||||
# CONFIG_VIDEO_BPP16 is not set
|
||||
CONFIG_SYS_WHITE_ON_BLACK=y
|
||||
CONFIG_VIDEO_MESON=y
|
||||
CONFIG_VIDEO_DT_SIMPLEFB=y
|
||||
CONFIG_SPLASH_SCREEN=y
|
||||
CONFIG_SPLASH_SCREEN_ALIGN=y
|
||||
CONFIG_VIDEO_BMP_RLE8=y
|
||||
CONFIG_BMP_16BPP=y
|
||||
CONFIG_BMP_24BPP=y
|
||||
CONFIG_BMP_32BPP=y
|
||||
CONFIG_EFI_RUNTIME_UPDATE_CAPSULE=y
|
||||
CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y
|
108
configs/aml-s905d3-cc_defconfig
Normal file
108
configs/aml-s905d3-cc_defconfig
Normal file
@ -0,0 +1,108 @@
|
||||
CONFIG_ARM=y
|
||||
CONFIG_SYS_VENDOR="libre-computer"
|
||||
CONFIG_SYS_BOARD="aml-s905d3-cc"
|
||||
CONFIG_ARCH_MESON=y
|
||||
CONFIG_TEXT_BASE=0x01000000
|
||||
CONFIG_NR_DRAM_BANKS=1
|
||||
CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
|
||||
CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x20000000
|
||||
CONFIG_ENV_SIZE=0x2000
|
||||
CONFIG_ENV_OFFSET=0xFFFF0000
|
||||
CONFIG_ENV_SECT_SIZE=0x10000
|
||||
CONFIG_DM_GPIO=y
|
||||
CONFIG_DEFAULT_DEVICE_TREE="amlogic/meson-sm1-s905d3-libretech-cc"
|
||||
CONFIG_OF_LIBFDT_OVERLAY=y
|
||||
CONFIG_DM_RESET=y
|
||||
CONFIG_MESON_G12A=y
|
||||
CONFIG_DEBUG_UART_BASE=0xff803000
|
||||
CONFIG_DEBUG_UART_CLOCK=24000000
|
||||
CONFIG_IDENT_STRING="aml-s905d3-cc"
|
||||
CONFIG_SYS_LOAD_ADDR=0x1000000
|
||||
CONFIG_DEBUG_UART=y
|
||||
CONFIG_REMAKE_ELF=y
|
||||
CONFIG_FIT=y
|
||||
CONFIG_FIT_SIGNATURE=y
|
||||
CONFIG_FIT_VERBOSE=y
|
||||
CONFIG_LEGACY_IMAGE_FORMAT=y
|
||||
CONFIG_OF_BOARD_SETUP=y
|
||||
# CONFIG_DISPLAY_CPUINFO is not set
|
||||
CONFIG_MISC_INIT_R=y
|
||||
CONFIG_SYS_MAXARGS=32
|
||||
# CONFIG_CMD_BDI is not set
|
||||
# CONFIG_CMD_IMI is not set
|
||||
CONFIG_CMD_DFU=y
|
||||
CONFIG_CMD_NVEDIT_EFI=y
|
||||
CONFIG_CMD_GPIO=y
|
||||
# CONFIG_CMD_LOADS is not set
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_SF_TEST=y
|
||||
CONFIG_CMD_SPI=y
|
||||
CONFIG_CMD_USB=y
|
||||
CONFIG_CMD_USB_MASS_STORAGE=y
|
||||
CONFIG_CMD_EFIDEBUG=y
|
||||
# CONFIG_CMD_SETEXPR is not set
|
||||
CONFIG_CMD_REGULATOR=y
|
||||
CONFIG_OF_CONTROL=y
|
||||
CONFIG_ENV_IS_IN_SPI_FLASH=y
|
||||
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
CONFIG_ADC=y
|
||||
CONFIG_SARADC_MESON=y
|
||||
CONFIG_BUTTON=y
|
||||
CONFIG_BUTTON_ADC=y
|
||||
CONFIG_DFU_RAM=y
|
||||
CONFIG_DFU_SF=y
|
||||
CONFIG_SET_DFU_ALT_INFO=y
|
||||
CONFIG_MMC_MESON_GX=y
|
||||
CONFIG_MTD=y
|
||||
CONFIG_DM_MTD=y
|
||||
CONFIG_DM_SPI_FLASH=y
|
||||
CONFIG_SPI_FLASH_GIGADEVICE=y
|
||||
CONFIG_SPI_FLASH_SPANSION=y
|
||||
CONFIG_PHY_REALTEK=y
|
||||
CONFIG_DM_MDIO=y
|
||||
CONFIG_DM_MDIO_MUX=y
|
||||
CONFIG_ETH_DESIGNWARE_MESON8B=y
|
||||
CONFIG_MDIO_MUX_MESON_G12A=y
|
||||
CONFIG_MESON_G12A_USB_PHY=y
|
||||
CONFIG_PINCTRL=y
|
||||
CONFIG_PINCTRL_MESON_G12A=y
|
||||
CONFIG_POWER_DOMAIN=y
|
||||
CONFIG_MESON_EE_POWER_DOMAIN=y
|
||||
CONFIG_DM_REGULATOR=y
|
||||
CONFIG_DM_REGULATOR_FIXED=y
|
||||
CONFIG_DEBUG_UART_ANNOUNCE=y
|
||||
CONFIG_DEBUG_UART_SKIP_INIT=y
|
||||
CONFIG_MESON_SERIAL=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_DM_SPI=y
|
||||
CONFIG_MESON_SPIFC=y
|
||||
CONFIG_SYSINFO=y
|
||||
CONFIG_SYSINFO_SMBIOS=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_DM_USB_GADGET=y
|
||||
CONFIG_USB_XHCI_HCD=y
|
||||
CONFIG_USB_XHCI_DWC3=y
|
||||
CONFIG_USB_DWC3=y
|
||||
# CONFIG_USB_DWC3_GADGET is not set
|
||||
CONFIG_USB_DWC3_MESON_G12A=y
|
||||
CONFIG_USB_KEYBOARD=y
|
||||
CONFIG_USB_GADGET=y
|
||||
CONFIG_USB_GADGET_VENDOR_NUM=0x1b8e
|
||||
CONFIG_USB_GADGET_PRODUCT_NUM=0xfada
|
||||
CONFIG_USB_GADGET_DWC2_OTG=y
|
||||
CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8=y
|
||||
CONFIG_USB_GADGET_DOWNLOAD=y
|
||||
CONFIG_VIDEO=y
|
||||
# CONFIG_VIDEO_BPP8 is not set
|
||||
# CONFIG_VIDEO_BPP16 is not set
|
||||
CONFIG_SYS_WHITE_ON_BLACK=y
|
||||
CONFIG_VIDEO_MESON=y
|
||||
CONFIG_VIDEO_DT_SIMPLEFB=y
|
||||
CONFIG_SPLASH_SCREEN=y
|
||||
CONFIG_SPLASH_SCREEN_ALIGN=y
|
||||
CONFIG_VIDEO_BMP_RLE8=y
|
||||
CONFIG_BMP_16BPP=y
|
||||
CONFIG_BMP_24BPP=y
|
||||
CONFIG_BMP_32BPP=y
|
||||
CONFIG_EFI_RUNTIME_UPDATE_CAPSULE=y
|
||||
CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y
|
@ -1,5 +1,7 @@
|
||||
CONFIG_ARM=y
|
||||
CONFIG_SYS_CONFIG_NAME="libretech-ac"
|
||||
CONFIG_SYS_VENDOR="libre-computer"
|
||||
CONFIG_SYS_BOARD="aml-s805x-ac"
|
||||
CONFIG_ARCH_MESON=y
|
||||
CONFIG_TEXT_BASE=0x01000000
|
||||
CONFIG_NR_DRAM_BANKS=1
|
||||
@ -33,6 +35,7 @@ CONFIG_SYS_MAXARGS=32
|
||||
# CONFIG_CMD_IMI is not set
|
||||
CONFIG_CMD_ADC=y
|
||||
CONFIG_CMD_DFU=y
|
||||
CONFIG_CMD_NVEDIT_EFI=y
|
||||
CONFIG_CMD_GPIO=y
|
||||
# CONFIG_CMD_LOADS is not set
|
||||
CONFIG_CMD_MMC=y
|
||||
@ -40,6 +43,7 @@ CONFIG_CMD_SF_TEST=y
|
||||
CONFIG_CMD_SPI=y
|
||||
CONFIG_CMD_USB=y
|
||||
CONFIG_CMD_USB_MASS_STORAGE=y
|
||||
CONFIG_CMD_EFIDEBUG=y
|
||||
# CONFIG_CMD_SETEXPR is not set
|
||||
CONFIG_CMD_REGULATOR=y
|
||||
CONFIG_OF_CONTROL=y
|
||||
@ -47,6 +51,8 @@ CONFIG_ENV_IS_IN_SPI_FLASH=y
|
||||
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
CONFIG_SARADC_MESON=y
|
||||
CONFIG_DFU_RAM=y
|
||||
CONFIG_DFU_SF=y
|
||||
CONFIG_SET_DFU_ALT_INFO=y
|
||||
CONFIG_MMC_MESON_GX=y
|
||||
CONFIG_MTD=y
|
||||
CONFIG_DM_MTD=y
|
||||
@ -96,3 +102,5 @@ CONFIG_VIDEO_BMP_RLE8=y
|
||||
CONFIG_BMP_16BPP=y
|
||||
CONFIG_BMP_24BPP=y
|
||||
CONFIG_BMP_32BPP=y
|
||||
CONFIG_EFI_RUNTIME_UPDATE_CAPSULE=y
|
||||
CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y
|
||||
|
46
doc/board/amlogic/aml-a311d-cc.rst
Normal file
46
doc/board/amlogic/aml-a311d-cc.rst
Normal file
@ -0,0 +1,46 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0+
|
||||
|
||||
U-Boot for Libre Computer AML-A311D-CC 'Alta' (A311D)
|
||||
=====================================================
|
||||
|
||||
AML-A311D-CC is a Single Board Computer manufactured by Libre Computer Technology with
|
||||
the following specifications:
|
||||
|
||||
- Amlogic A311D Arm Cortex-A53 dual-core + Cortex-A73 quad-core SoC
|
||||
- 2 or 4GB LPDDR4 SDRAM
|
||||
- Gigabit Ethernet
|
||||
- HDMI 2.1 display
|
||||
- 40-pin GPIO header
|
||||
- 4 x USB 3.0 Host, 1 x USB 2.0 Type-C
|
||||
- eMMC 5.x SM Interface for Libre Computer Modules
|
||||
- microSD
|
||||
- Infrared receiver
|
||||
|
||||
Schematics are available on the manufacturer website.
|
||||
|
||||
U-Boot Compilation
|
||||
------------------
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ export CROSS_COMPILE=aarch64-none-elf-
|
||||
$ make aml-a311d-cc_defconfig
|
||||
$ make
|
||||
|
||||
U-Boot Signing with Pre-Built FIP repo
|
||||
--------------------------------------
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ git clone https://github.com/LibreELEC/amlogic-boot-fip --depth=1
|
||||
$ cd amlogic-boot-fip
|
||||
$ mkdir my-output-dir
|
||||
$ ./build-fip.sh aml-a311d-cc /path/to/u-boot/u-boot.bin my-output-dir
|
||||
|
||||
Then write U-Boot to SD or eMMC with:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ DEV=/dev/boot_device
|
||||
$ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
||||
$ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=440
|
46
doc/board/amlogic/aml-s905d3-cc.rst
Normal file
46
doc/board/amlogic/aml-s905d3-cc.rst
Normal file
@ -0,0 +1,46 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0+
|
||||
|
||||
U-Boot for Libre Computer AML-S905D3-CC 'Solitude' (S905D3)
|
||||
===========================================================
|
||||
|
||||
AML-S905D3-CC is a Single Board Computer manufactured by Libre Computer Technology with
|
||||
the following specifications:
|
||||
|
||||
- Amlogic S905D3 Cortex-A55 quad-core SoC
|
||||
- 2 or 4GB LPDDR4 SDRAM
|
||||
- Gigabit Ethernet
|
||||
- HDMI 2.1 display
|
||||
- 40-pin GPIO header
|
||||
- 4 x USB 3.0 Host, 1 x USB 2.0 Type-C
|
||||
- eMMC 5.x SM Interface for Libre Computer Modules
|
||||
- microSD
|
||||
- Infrared receiver
|
||||
|
||||
Schematics are available on the manufacturer website.
|
||||
|
||||
U-Boot Compilation
|
||||
------------------
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ export CROSS_COMPILE=aarch64-none-elf-
|
||||
$ make aml-s905d3-cc_defconfig
|
||||
$ make
|
||||
|
||||
U-Boot Signing with Pre-Built FIP repo
|
||||
--------------------------------------
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ git clone https://github.com/LibreELEC/amlogic-boot-fip --depth=1
|
||||
$ cd amlogic-boot-fip
|
||||
$ mkdir my-output-dir
|
||||
$ ./build-fip.sh aml-s905d3-cc /path/to/u-boot/u-boot.bin my-output-dir
|
||||
|
||||
Then write U-Boot to SD or eMMC with:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ DEV=/dev/boot_device
|
||||
$ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
||||
$ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=440
|
@ -85,6 +85,8 @@ Board Documentation
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
aml-a311d-cc
|
||||
aml-s905d3-cc
|
||||
bananapi-cm4io
|
||||
bananapi-m2pro
|
||||
bananapi-m2s
|
||||
|
@ -66,6 +66,8 @@
|
||||
#define CLKID_VDEC_HEVC_SEL 154
|
||||
#define CLKID_VDEC_HEVC_DIV 155
|
||||
|
||||
#define CLKID_XTAL 0x10000000
|
||||
|
||||
#define XTAL_RATE 24000000
|
||||
|
||||
struct meson_clk {
|
||||
@ -192,6 +194,7 @@ static struct meson_gate gates[] = {
|
||||
MESON_GATE(CLKID_VAPB_0, HHI_VAPBCLK_CNTL, 8),
|
||||
MESON_GATE(CLKID_VAPB_1, HHI_VAPBCLK_CNTL, 24),
|
||||
MESON_GATE(CLKID_VAPB, HHI_VAPBCLK_CNTL, 30),
|
||||
MESON_GATE(CLKID_HDMI, HHI_HDMI_CLK_CNTL, 8),
|
||||
};
|
||||
|
||||
static int meson_set_gate_by_id(struct clk *clk, unsigned long id, bool on)
|
||||
@ -267,6 +270,12 @@ static struct parm meson_vapb_1_div_parm = {
|
||||
|
||||
int meson_vapb_1_div_parent = CLKID_VAPB_1_SEL;
|
||||
|
||||
static struct parm meson_hdmi_div_parm = {
|
||||
HHI_HDMI_CLK_CNTL, 0, 7,
|
||||
};
|
||||
|
||||
int meson_hdmi_div_parent = CLKID_HDMI_SEL;
|
||||
|
||||
static ulong meson_div_get_rate(struct clk *clk, unsigned long id)
|
||||
{
|
||||
struct meson_clk *priv = dev_get_priv(clk->dev);
|
||||
@ -292,6 +301,10 @@ static ulong meson_div_get_rate(struct clk *clk, unsigned long id)
|
||||
parm = &meson_vapb_1_div_parm;
|
||||
parent = meson_vapb_1_div_parent;
|
||||
break;
|
||||
case CLKID_HDMI_DIV:
|
||||
parm = &meson_hdmi_div_parm;
|
||||
parent = meson_hdmi_div_parent;
|
||||
break;
|
||||
default:
|
||||
return -ENOENT;
|
||||
}
|
||||
@ -347,6 +360,10 @@ static ulong meson_div_set_rate(struct clk *clk, unsigned long id, ulong rate,
|
||||
parm = &meson_vapb_1_div_parm;
|
||||
parent = meson_vapb_1_div_parent;
|
||||
break;
|
||||
case CLKID_HDMI_DIV:
|
||||
parm = &meson_hdmi_div_parm;
|
||||
parent = meson_hdmi_div_parent;
|
||||
break;
|
||||
default:
|
||||
return -ENOENT;
|
||||
}
|
||||
@ -443,6 +460,17 @@ static int meson_vapb_0_1_mux_parents[] = {
|
||||
CLKID_FCLK_DIV7,
|
||||
};
|
||||
|
||||
static struct parm meson_hdmi_mux_parm = {
|
||||
HHI_HDMI_CLK_CNTL, 9, 2,
|
||||
};
|
||||
|
||||
static int meson_hdmi_mux_parents[] = {
|
||||
CLKID_XTAL,
|
||||
CLKID_FCLK_DIV4,
|
||||
CLKID_FCLK_DIV3,
|
||||
CLKID_FCLK_DIV5,
|
||||
};
|
||||
|
||||
static ulong meson_mux_get_parent(struct clk *clk, unsigned long id)
|
||||
{
|
||||
struct meson_clk *priv = dev_get_priv(clk->dev);
|
||||
@ -475,6 +503,10 @@ static ulong meson_mux_get_parent(struct clk *clk, unsigned long id)
|
||||
parm = &meson_vapb_1_mux_parm;
|
||||
parents = meson_vapb_0_1_mux_parents;
|
||||
break;
|
||||
case CLKID_HDMI_SEL:
|
||||
parm = &meson_hdmi_mux_parm;
|
||||
parents = meson_hdmi_mux_parents;
|
||||
break;
|
||||
default:
|
||||
return -ENOENT;
|
||||
}
|
||||
@ -532,6 +564,10 @@ static ulong meson_mux_set_parent(struct clk *clk, unsigned long id,
|
||||
parm = &meson_vapb_1_mux_parm;
|
||||
parents = meson_vapb_0_1_mux_parents;
|
||||
break;
|
||||
case CLKID_HDMI_SEL:
|
||||
parm = &meson_hdmi_mux_parm;
|
||||
parents = meson_hdmi_mux_parents;
|
||||
break;
|
||||
default:
|
||||
/* Not a mux */
|
||||
return -ENOENT;
|
||||
@ -572,7 +608,7 @@ static unsigned long meson_clk81_get_rate(struct clk *clk)
|
||||
unsigned long parent_rate;
|
||||
uint reg;
|
||||
int parents[] = {
|
||||
-1,
|
||||
CLKID_XTAL,
|
||||
-1,
|
||||
CLKID_FCLK_DIV7,
|
||||
CLKID_MPLL1,
|
||||
@ -727,6 +763,9 @@ static ulong meson_clk_get_rate_by_id(struct clk *clk, unsigned long id)
|
||||
ulong rate;
|
||||
|
||||
switch (id) {
|
||||
case CLKID_XTAL:
|
||||
rate = XTAL_RATE;
|
||||
break;
|
||||
case CLKID_FIXED_PLL:
|
||||
case CLKID_SYS_PLL:
|
||||
rate = meson_pll_get_rate(clk, id);
|
||||
@ -769,10 +808,14 @@ static ulong meson_clk_get_rate_by_id(struct clk *clk, unsigned long id)
|
||||
case CLKID_VAPB_1:
|
||||
rate = meson_div_get_rate(clk, CLKID_VAPB_1_DIV);
|
||||
break;
|
||||
case CLKID_HDMI:
|
||||
rate = meson_div_get_rate(clk, CLKID_HDMI_DIV);
|
||||
break;
|
||||
case CLKID_VPU_0_DIV:
|
||||
case CLKID_VPU_1_DIV:
|
||||
case CLKID_VAPB_0_DIV:
|
||||
case CLKID_VAPB_1_DIV:
|
||||
case CLKID_HDMI_DIV:
|
||||
rate = meson_div_get_rate(clk, id);
|
||||
break;
|
||||
case CLKID_VPU:
|
||||
@ -781,6 +824,7 @@ static ulong meson_clk_get_rate_by_id(struct clk *clk, unsigned long id)
|
||||
case CLKID_VAPB_SEL:
|
||||
case CLKID_VAPB_0_SEL:
|
||||
case CLKID_VAPB_1_SEL:
|
||||
case CLKID_HDMI_SEL:
|
||||
rate = meson_mux_get_rate(clk, id);
|
||||
break;
|
||||
default:
|
||||
@ -851,7 +895,11 @@ static ulong meson_clk_set_rate_by_id(struct clk *clk, unsigned long id,
|
||||
case CLKID_VPU_1_DIV:
|
||||
case CLKID_VAPB_0_DIV:
|
||||
case CLKID_VAPB_1_DIV:
|
||||
case CLKID_HDMI_DIV:
|
||||
return meson_div_set_rate(clk, id, rate, current_rate);
|
||||
case CLKID_HDMI:
|
||||
return meson_clk_set_rate_by_id(clk, CLKID_HDMI_DIV,
|
||||
rate, current_rate);
|
||||
default:
|
||||
return -ENOENT;
|
||||
}
|
||||
|
@ -60,6 +60,7 @@ struct meson_ee_pwrc_domain_desc {
|
||||
unsigned int mem_pd_count;
|
||||
struct meson_ee_pwrc_mem_domain *mem_pd;
|
||||
bool (*get_power)(struct power_domain *power_domain);
|
||||
bool enabled;
|
||||
};
|
||||
|
||||
struct meson_ee_pwrc_domain_data {
|
||||
@ -306,6 +307,8 @@ static int meson_ee_pwrc_off(struct power_domain *power_domain)
|
||||
clk_disable_bulk(&priv->clks);
|
||||
}
|
||||
|
||||
pwrc_domain->enabled = false;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -317,6 +320,9 @@ static int meson_ee_pwrc_on(struct power_domain *power_domain)
|
||||
|
||||
pwrc_domain = &priv->data->domains[power_domain->id];
|
||||
|
||||
if (pwrc_domain->enabled)
|
||||
return 0;
|
||||
|
||||
if (pwrc_domain->top_pd)
|
||||
regmap_update_bits(priv->regmap_ao,
|
||||
pwrc_domain->top_pd->sleep_reg,
|
||||
@ -347,8 +353,13 @@ static int meson_ee_pwrc_on(struct power_domain *power_domain)
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (pwrc_domain->clk_names_count)
|
||||
return clk_enable_bulk(&priv->clks);
|
||||
if (pwrc_domain->clk_names_count) {
|
||||
ret = clk_enable_bulk(&priv->clks);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
pwrc_domain->enabled = true;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -418,8 +418,8 @@ static int meson_dw_hdmi_probe(struct udevice *dev)
|
||||
}
|
||||
|
||||
if (!ret) {
|
||||
ret = regulator_set_enable(supply, true);
|
||||
if (ret)
|
||||
ret = regulator_set_enable_if_allowed(supply, true);
|
||||
if (ret && ret != -ENOSYS)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
@ -21,8 +21,8 @@
|
||||
"name=dtbo_b,size=8M,uuid=${uuid_gpt_dtbo_b};" \
|
||||
"name=vbmeta_a,size=512K,uuid=${uuid_gpt_vbmeta_a};" \
|
||||
"name=vbmeta_b,size=512K,uuid=${uuid_gpt_vbmeta_b};" \
|
||||
"name=boot_a,size=32M,bootable,uuid=${uuid_gpt_boot_a};" \
|
||||
"name=boot_b,size=32M,bootable,uuid=${uuid_gpt_boot_b};" \
|
||||
"name=boot_a,size=64M,bootable,uuid=${uuid_gpt_boot_a};" \
|
||||
"name=boot_b,size=64M,bootable,uuid=${uuid_gpt_boot_b};" \
|
||||
"name=super,size=3072M,uuid=${uuid_gpt_super};" \
|
||||
"name=userdata,size=11282M,uuid=${uuid_gpt_userdata};" \
|
||||
"name=rootfs,size=-,uuid=" ROOT_UUID
|
||||
@ -33,8 +33,8 @@
|
||||
"name=misc,size=512K,uuid=${uuid_gpt_misc};" \
|
||||
"name=dtbo,size=8M,uuid=${uuid_gpt_dtbo};" \
|
||||
"name=vbmeta,size=512K,uuid=${uuid_gpt_vbmeta};" \
|
||||
"name=boot,size=32M,bootable,uuid=${uuid_gpt_boot};" \
|
||||
"name=recovery,size=32M,uuid=${uuid_gpt_recovery};" \
|
||||
"name=boot,size=64M,bootable,uuid=${uuid_gpt_boot};" \
|
||||
"name=recovery,size=64M,uuid=${uuid_gpt_recovery};" \
|
||||
"name=cache,size=256M,uuid=${uuid_gpt_cache};" \
|
||||
"name=super,size=1792M,uuid=${uuid_gpt_super};" \
|
||||
"name=userdata,size=12786M,uuid=${uuid_gpt_userdata};" \
|
||||
|
@ -21,8 +21,8 @@
|
||||
"name=dtbo_b,size=8M,uuid=${uuid_gpt_dtbo_b};" \
|
||||
"name=vbmeta_a,size=512K,uuid=${uuid_gpt_vbmeta_a};" \
|
||||
"name=vbmeta_b,size=512K,uuid=${uuid_gpt_vbmeta_b};" \
|
||||
"name=boot_a,size=32M,bootable,uuid=${uuid_gpt_boot_a};" \
|
||||
"name=boot_b,size=32M,bootable,uuid=${uuid_gpt_boot_b};" \
|
||||
"name=boot_a,size=64M,bootable,uuid=${uuid_gpt_boot_a};" \
|
||||
"name=boot_b,size=64M,bootable,uuid=${uuid_gpt_boot_b};" \
|
||||
"name=super,size=3072M,uuid=${uuid_gpt_super};" \
|
||||
"name=userdata,size=11282M,uuid=${uuid_gpt_userdata};" \
|
||||
"name=rootfs,size=-,uuid=" ROOT_UUID
|
||||
@ -33,8 +33,8 @@
|
||||
"name=misc,size=512K,uuid=${uuid_gpt_misc};" \
|
||||
"name=dtbo,size=8M,uuid=${uuid_gpt_dtbo};" \
|
||||
"name=vbmeta,size=512K,uuid=${uuid_gpt_vbmeta};" \
|
||||
"name=boot,size=32M,bootable,uuid=${uuid_gpt_boot};" \
|
||||
"name=recovery,size=32M,uuid=${uuid_gpt_recovery};" \
|
||||
"name=boot,size=64M,bootable,uuid=${uuid_gpt_boot};" \
|
||||
"name=recovery,size=64M,uuid=${uuid_gpt_recovery};" \
|
||||
"name=cache,size=256M,uuid=${uuid_gpt_cache};" \
|
||||
"name=super,size=1792M,uuid=${uuid_gpt_super};" \
|
||||
"name=userdata,size=12786M,uuid=${uuid_gpt_userdata};" \
|
||||
|
@ -77,6 +77,15 @@
|
||||
#define BOOTENV_DEV_NAME_USB_DFU(devtypeu, devtypel, instance)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CMD_MMC
|
||||
#define BOOT_TARGET_MMC(func) \
|
||||
func(MMC, mmc, 0) \
|
||||
func(MMC, mmc, 1) \
|
||||
func(MMC, mmc, 2)
|
||||
#else
|
||||
#define BOOT_TARGET_MMC(func)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CMD_USB
|
||||
#define BOOT_TARGET_DEVICES_USB(func) func(USB, usb, 0)
|
||||
#else
|
||||
@ -95,18 +104,27 @@
|
||||
#define BOOT_TARGET_SCSI(func)
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_CMD_DHCP) && defined(CONFIG_CMD_PXE)
|
||||
#define BOOT_TARGET_PXE(func) func(PXE, pxe, na)
|
||||
#define BOOT_TARGET_DHCP(func) func(DHCP, dhcp, na)
|
||||
#elif defined(CONFIG_CMD_DHCP)
|
||||
#define BOOT_TARGET_PXE(func)
|
||||
#define BOOT_TARGET_DHCP(func) func(DHCP, dhcp, na)
|
||||
#else
|
||||
#define BOOT_TARGET_PXE(func)
|
||||
#define BOOT_TARGET_DHCP(func)
|
||||
#endif
|
||||
|
||||
#ifndef BOOT_TARGET_DEVICES
|
||||
#define BOOT_TARGET_DEVICES(func) \
|
||||
func(ROMUSB, romusb, na) \
|
||||
func(USB_DFU, usbdfu, na) \
|
||||
func(MMC, mmc, 0) \
|
||||
func(MMC, mmc, 1) \
|
||||
func(MMC, mmc, 2) \
|
||||
BOOT_TARGET_MMC(func) \
|
||||
BOOT_TARGET_DEVICES_USB(func) \
|
||||
BOOT_TARGET_NVME(func) \
|
||||
BOOT_TARGET_SCSI(func) \
|
||||
func(PXE, pxe, na) \
|
||||
func(DHCP, dhcp, na)
|
||||
BOOT_TARGET_PXE(func) \
|
||||
BOOT_TARGET_DHCP(func)
|
||||
#endif
|
||||
|
||||
#define BOOTM_SIZE __stringify(0x1700000)
|
||||
|
@ -116,31 +116,7 @@
|
||||
"fi; " \
|
||||
"abootimg get dtb --index=$dtb_index dtb_start dtb_size; " \
|
||||
"cp.b $dtb_start $fdt_addr_r $dtb_size; " \
|
||||
"fdt addr $fdt_addr_r 0x80000; " \
|
||||
"if test $board_name = sei510; then " \
|
||||
"echo \" Reading DTBO for sei510...\"; " \
|
||||
"setenv dtbo_index 0;" \
|
||||
"elif test $board_name = sei610; then " \
|
||||
"echo \" Reading DTBO for sei610...\"; " \
|
||||
"setenv dtbo_index 1;" \
|
||||
"elif test $board_name = vim3l; then " \
|
||||
"echo \" Reading DTBO for vim3l...\"; " \
|
||||
"setenv dtbo_index 2;" \
|
||||
"elif test $board_name = vim3; then " \
|
||||
"echo \" Reading DTBO for vim3...\"; " \
|
||||
"setenv dtbo_index 3;" \
|
||||
"else " \
|
||||
"echo Error: Android boot is not supported for $board_name; " \
|
||||
"exit; " \
|
||||
"fi; " \
|
||||
"part start mmc ${mmcdev} dtbo${slot_suffix} p_dtbo_start; " \
|
||||
"part size mmc ${mmcdev} dtbo${slot_suffix} p_dtbo_size; " \
|
||||
"mmc read ${dtboaddr} ${p_dtbo_start} ${p_dtbo_size}; " \
|
||||
"echo \" Applying DTBOs...\"; " \
|
||||
"adtimg addr $dtboaddr; " \
|
||||
"adtimg get dt --index=$dtbo_index dtbo0_addr; " \
|
||||
"fdt apply $dtbo0_addr;" \
|
||||
"setenv bootargs \"$bootargs androidboot.dtbo_idx=$dtbo_index \";"\
|
||||
"fdt addr $fdt_addr_r 0x80000; "
|
||||
|
||||
#define BOOT_CMD "bootm ${loadaddr} ${loadaddr} ${fdt_addr_r};"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user