avionic design with actual uboot and tooling

submodule of avionic design uboot bootloader and with included tools to
get you started , read readme.md and readme-tk1-loader.md
This commit is contained in:
2026-03-03 21:46:32 +02:00
parent fe3ba02c96
commit 68d74d3181
11967 changed files with 2221897 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
#
# Copyright (C) 2015, Bin Meng <bmeng.cn@gmail.com>
#
# SPDX-License-Identifier: GPL-2.0+
#
if VENDOR_INTEL
choice
prompt "Mainboard model"
optional
config TARGET_BAYLEYBAY
bool "Bayley Bay"
help
This is the Intel Bayley Bay Customer Reference Board. It contains an
Intel quad-core Atom Processor E3800 with dual-channel DDR3L SODIMM
4GB memory, HDMI/DP/VGA display, HD audio, SATA, USB2, USB3, SD, eMMC,
PCIe and some other sensor interfaces.
config TARGET_COUGARCANYON2
bool "Cougar Canyon 2"
help
This is the Intel Cougar Canyon 2 Customer Reference Board. It
is built on the Chief River platform with Intel Ivybridge Processor
and Panther Point chipset. The board has 4GB RAM, with some other
peripheral connectors for PCIe/SATA/USB2/USB3/LAN/UART/PS2/VGA/HDMI.
config TARGET_CROWNBAY
bool "Crown Bay"
help
This is the Intel Crown Bay Customer Reference Board. It contains
the Intel Atom Processor E6xx populated on the COM Express module
with 1GB DDR2 soldered down memory and a carrier board with the
Intel Platform Controller Hub EG20T, other system components and
peripheral connectors for PCIe/SATA/USB/LAN/SD/UART/Audio/LVDS.
config TARGET_GALILEO
bool "Galileo"
help
This is the Intel Galileo board, which is the first in a family of
Arduino-certified development and prototyping boards based on Intel
architecture. It includes an Intel Quark SoC X1000 processor, a 32-bit
single-core, single-thread, Intel Pentium processor instrunction set
architecture (ISA) compatible, operating at speeds up to 400Mhz,
along with 256MB DDR3 memory. It supports a wide range of industry
standard I/O interfaces, including a full-sized mini-PCIe slot,
one 100Mb Ethernet port, a microSD card slot, a USB host port and
a USB client port.
config TARGET_MINNOWMAX
bool "Minnowboard MAX"
help
This is the Intel Minnowboard MAX. It contains an Atom E3800
processor in a small form factor with Ethernet, micro-SD, USB 2,
USB 3, SATA, serial console, some GPIOs and HDMI 1.3 video out.
It requires some binary blobs - see README.x86 for details.
Note that PCIE_ECAM_BASE is set up by the FSP so the value used
by U-Boot matches that value.
endchoice
source "board/intel/bayleybay/Kconfig"
source "board/intel/cougarcanyon2/Kconfig"
source "board/intel/crownbay/Kconfig"
source "board/intel/galileo/Kconfig"
source "board/intel/minnowmax/Kconfig"
endif

View File

@@ -0,0 +1,3 @@
dsdt.aml
dsdt.asl.tmp
dsdt.c

View File

@@ -0,0 +1,27 @@
if TARGET_BAYLEYBAY
config SYS_BOARD
default "bayleybay"
config SYS_VENDOR
default "intel"
config SYS_SOC
default "baytrail"
config SYS_CONFIG_NAME
default "bayleybay"
config SYS_TEXT_BASE
default 0xfff00000
config BOARD_SPECIFIC_OPTIONS # dummy
def_bool y
select X86_RESET_VECTOR
select INTEL_BAYTRAIL
select BOARD_ROMSIZE_KB_8192
config PCIE_ECAM_BASE
default 0xe0000000
endif

View File

@@ -0,0 +1,6 @@
Intel Bayley Bay
M: Bin Meng <bmeng.cn@gmail.com>
S: Maintained
F: board/intel/bayleybay
F: include/configs/bayleybay.h
F: configs/bayleybay_defconfig

View File

@@ -0,0 +1,8 @@
#
# Copyright (C) 2015, Bin Meng <bmeng.cn@gmail.com>
#
# SPDX-License-Identifier: GPL-2.0+
#
obj-y += bayleybay.o start.o
obj-$(CONFIG_GENERATE_ACPI_TABLE) += dsdt.o

View File

@@ -0,0 +1,11 @@
/*
* Copyright (C) 2016, Bin Meng <bmeng.cn@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0+
*/
/* Power Button */
Device (PWRB)
{
Name(_HID, EISAID("PNP0C0C"))
}

View File

@@ -0,0 +1,8 @@
/*
* Copyright (C) 2015, Bin Meng <bmeng.cn@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0+
*/
#include <common.h>
#include <asm/gpio.h>

View File

@@ -0,0 +1,14 @@
/*
* Copyright (C) 2016, Bin Meng <bmeng.cn@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0+
*/
DefinitionBlock("dsdt.aml", "DSDT", 2, "U-BOOT", "U-BOOTBL", 0x00010000)
{
/* platform specific */
#include <asm/arch/acpi/platform.asl>
/* board specific */
#include "acpi/mainboard.asl"
}

View File

@@ -0,0 +1,9 @@
/*
* Copyright (C) 2015, Bin Meng <bmeng.cn@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0+
*/
.globl early_board_init
early_board_init:
jmp early_board_init_ret

View File

@@ -0,0 +1,25 @@
if TARGET_COUGARCANYON2
config SYS_BOARD
default "cougarcanyon2"
config SYS_VENDOR
default "intel"
config SYS_SOC
default "ivybridge"
config SYS_CONFIG_NAME
default "cougarcanyon2"
config SYS_TEXT_BASE
default 0xffe00000
config BOARD_SPECIFIC_OPTIONS # dummy
def_bool y
select X86_RESET_VECTOR
select NORTHBRIDGE_INTEL_IVYBRIDGE
select HAVE_FSP
select BOARD_ROMSIZE_KB_2048
endif

View File

@@ -0,0 +1,6 @@
INTEL COUGAR CANYON 2 BOARD
M: Bin Meng <bmeng.cn@gmail.com>
S: Maintained
F: board/intel/cougarcanyon2/
F: include/configs/cougarcanyon2.h
F: configs/cougarcanyon2_defconfig

View File

@@ -0,0 +1,7 @@
#
# Copyright (C) 2016, Bin Meng <bmeng.cn@gmail.com>
#
# SPDX-License-Identifier: GPL-2.0+
#
obj-y += cougarcanyon2.o start.o

View File

@@ -0,0 +1,54 @@
/*
* Copyright (C) 2016, Bin Meng <bmeng.cn@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0+
*/
#include <common.h>
#include <dm.h>
#include <errno.h>
#include <pci.h>
#include <smsc_sio1007.h>
#include <asm/ibmpc.h>
#include <asm/lpc_common.h>
#include <asm/pci.h>
#include <asm/arch/pch.h>
#define SIO1007_RUNTIME_IOPORT 0x180
int board_early_init_f(void)
{
struct udevice *pch;
int ret;
ret = uclass_first_device(UCLASS_PCH, &pch);
if (ret)
return ret;
if (!pch)
return -ENODEV;
/* Initialize LPC interface to turn on superio chipset decode range */
dm_pci_write_config16(pch, LPC_IO_DEC, COMA_DEC_RANGE | COMB_DEC_RANGE);
dm_pci_write_config16(pch, LPC_EN, KBC_LPC_EN | COMA_LPC_EN);
dm_pci_write_config32(pch, LPC_GEN1_DEC, GEN_DEC_RANGE_256B |
(SIO1007_IOPORT3 & 0xff00) | GEN_DEC_RANGE_EN);
dm_pci_write_config32(pch, LPC_GEN2_DEC, GEN_DEC_RANGE_16B |
SIO1007_RUNTIME_IOPORT | GEN_DEC_RANGE_EN);
/* Enable legacy serial port at 0x3f8 */
sio1007_enable_serial(SIO1007_IOPORT3, 0, UART0_BASE, UART0_IRQ);
/* Enable SIO1007 runtime I/O port at 0x180 */
sio1007_enable_runtime(SIO1007_IOPORT3, SIO1007_RUNTIME_IOPORT);
/*
* On Cougar Canyon 2 board, the RS232 transiver connected to serial
* port 0 (0x3f8) is controlled by a GPIO pin (GPIO10) on the SIO1007.
* Set the pin value to 1 to enable the RS232 transiver.
*/
sio1007_gpio_config(SIO1007_IOPORT3, 0, GPIO_DIR_OUTPUT,
GPIO_POL_NO_INVERT, GPIO_TYPE_PUSH_PULL);
sio1007_gpio_set_value(SIO1007_RUNTIME_IOPORT, 0, 1);
return 0;
}

View File

@@ -0,0 +1,9 @@
/*
* Copyright (C) 2016, Bin Meng <bmeng.cn@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0+
*/
.globl early_board_init
early_board_init:
jmp early_board_init_ret

View File

@@ -0,0 +1,24 @@
if TARGET_CROWNBAY
config SYS_BOARD
default "crownbay"
config SYS_VENDOR
default "intel"
config SYS_SOC
default "queensbay"
config SYS_CONFIG_NAME
default "crownbay"
config SYS_TEXT_BASE
default 0xfff00000
config BOARD_SPECIFIC_OPTIONS # dummy
def_bool y
select X86_RESET_VECTOR
select INTEL_QUEENSBAY
select BOARD_ROMSIZE_KB_1024
endif

View File

@@ -0,0 +1,6 @@
INTEL CROWNBAY BOARD
M: Bin Meng <bmeng.cn@gmail.com>
S: Maintained
F: board/intel/crownbay/
F: include/configs/crownbay.h
F: configs/crownbay_defconfig

View File

@@ -0,0 +1,7 @@
#
# Copyright (C) 2014, Bin Meng <bmeng.cn@gmail.com>
#
# SPDX-License-Identifier: GPL-2.0+
#
obj-y += crownbay.o start.o

View File

@@ -0,0 +1,20 @@
/*
* Copyright (C) 2014, Bin Meng <bmeng.cn@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0+
*/
#include <common.h>
#include <asm/ibmpc.h>
#include <asm/pnp_def.h>
#include <smsc_lpc47m.h>
int board_early_init_f(void)
{
lpc47m_enable_serial(PNP_DEV(LPC47M_IO_PORT, LPC47M_SP1),
UART0_BASE, UART0_IRQ);
lpc47m_enable_kbc(PNP_DEV(LPC47M_IO_PORT, LPC47M_KBC),
KBD_IRQ, MSE_IRQ);
return 0;
}

View File

@@ -0,0 +1,9 @@
/*
* Copyright (C) 2014, Bin Meng <bmeng.cn@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0+
*/
.globl early_board_init
early_board_init:
jmp early_board_init_ret

3
u-boot/board/intel/galileo/.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
dsdt.aml
dsdt.asl.tmp
dsdt.c

View File

@@ -0,0 +1,35 @@
if TARGET_GALILEO
config SYS_BOARD
default "galileo"
config SYS_VENDOR
default "intel"
config SYS_SOC
default "quark"
config SYS_CONFIG_NAME
default "galileo"
config SYS_TEXT_BASE
default 0xfff10000
config BOARD_SPECIFIC_OPTIONS # dummy
def_bool y
select X86_RESET_VECTOR
select INTEL_QUARK
select BOARD_ROMSIZE_KB_1024
config SMBIOS_PRODUCT_NAME
default "GalileoGen2"
help
Override the default product name U-Boot reports in the SMBIOS
table, to be compatible with the Intel provided UEFI BIOS, as
Linux kernel drivers (drivers/mfd/intel_quark_i2c_gpio.c and
drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c) make use of
it to do different board level configuration.
This can be "Galileo" for GEN1 Galileo board.
endif

View File

@@ -0,0 +1,6 @@
INTEL GALILEO BOARD
M: Bin Meng <bmeng.cn@gmail.com>
S: Maintained
F: board/intel/galileo/
F: include/configs/galileo.h
F: configs/galileo_defconfig

View File

@@ -0,0 +1,8 @@
#
# Copyright (C) 2015, Bin Meng <bmeng.cn@gmail.com>
#
# SPDX-License-Identifier: GPL-2.0+
#
obj-y += galileo.o start.o
obj-$(CONFIG_GENERATE_ACPI_TABLE) += dsdt.o

View File

@@ -0,0 +1,11 @@
/*
* Copyright (C) 2016, Bin Meng <bmeng.cn@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0+
*/
/* Power Button */
Device (PWRB)
{
Name(_HID, EISAID("PNP0C0C"))
}

View File

@@ -0,0 +1,14 @@
/*
* Copyright (C) 2016, Bin Meng <bmeng.cn@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0+
*/
DefinitionBlock("dsdt.aml", "DSDT", 2, "U-BOOT", "U-BOOTBL", 0x00010000)
{
/* platform specific */
#include <asm/arch/acpi/platform.asl>
/* board specific */
#include "acpi/mainboard.asl"
}

View File

@@ -0,0 +1,67 @@
/*
* Copyright (C) 2015, Bin Meng <bmeng.cn@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0+
*/
#include <common.h>
#include <asm/io.h>
#include <asm/arch/device.h>
#include <asm/arch/quark.h>
int board_early_init_f(void)
{
return 0;
}
/*
* Intel Galileo gen2 board uses GPIO Resume Well bank pin0 as the PERST# pin.
*
* We cannot use any public GPIO APIs in <asm-generic/gpio.h> to control this
* pin, as these APIs will eventually call into gpio_ich6_ofdata_to_platdata()
* in the Intel ICH6 GPIO driver where it calls PCI configuration space access
* APIs which will trigger PCI enumeration process.
*
* Check <asm/arch-quark/quark.h> for more details.
*/
void board_assert_perst(void)
{
u32 base, port, val;
/* retrieve the GPIO IO base */
qrk_pci_read_config_dword(QUARK_LEGACY_BRIDGE, LB_GBA, &base);
base = (base & 0xffff) & ~0x7f;
/* enable the pin */
port = base + 0x20;
val = inl(port);
val |= (1 << 0);
outl(val, port);
/* configure the pin as output */
port = base + 0x24;
val = inl(port);
val &= ~(1 << 0);
outl(val, port);
/* pull it down (assert) */
port = base + 0x28;
val = inl(port);
val &= ~(1 << 0);
outl(val, port);
}
void board_deassert_perst(void)
{
u32 base, port, val;
/* retrieve the GPIO IO base */
qrk_pci_read_config_dword(QUARK_LEGACY_BRIDGE, LB_GBA, &base);
base = (base & 0xffff) & ~0x7f;
/* pull it up (de-assert) */
port = base + 0x28;
val = inl(port);
val |= (1 << 0);
outl(val, port);
}

View File

@@ -0,0 +1,9 @@
/*
* Copyright (C) 2015, Bin Meng <bmeng.cn@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0+
*/
.globl early_board_init
early_board_init:
jmp early_board_init_ret

View File

@@ -0,0 +1,3 @@
dsdt.aml
dsdt.asl.tmp
dsdt.c

View File

@@ -0,0 +1,28 @@
if TARGET_MINNOWMAX
config SYS_BOARD
default "minnowmax"
config SYS_VENDOR
default "intel"
config SYS_SOC
default "baytrail"
config SYS_CONFIG_NAME
default "minnowmax"
config SYS_TEXT_BASE
default 0xfff00000 if !EFI_STUB
default 0x01110000 if EFI_STUB
config BOARD_SPECIFIC_OPTIONS # dummy
def_bool y
select X86_RESET_VECTOR if !EFI_STUB
select INTEL_BAYTRAIL
select BOARD_ROMSIZE_KB_8192
config PCIE_ECAM_BASE
default 0xe0000000
endif

View File

@@ -0,0 +1,6 @@
CircuitCo Minnowboard Max
M: Simon Glass <sjg@chromium.org>
S: Maintained
F: board/intel/minnowmax
F: include/configs/minnowmax.h
F: configs/minnowmax_defconfig

View File

@@ -0,0 +1,8 @@
#
# Copyright (C) 2015, Google, Inc
#
# SPDX-License-Identifier: GPL-2.0+
#
obj-y += minnowmax.o start.o
obj-$(CONFIG_GENERATE_ACPI_TABLE) += dsdt.o

View File

@@ -0,0 +1,11 @@
/*
* Copyright (C) 2016, Bin Meng <bmeng.cn@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0+
*/
/* Power Button */
Device (PWRB)
{
Name(_HID, EISAID("PNP0C0C"))
}

View File

@@ -0,0 +1,14 @@
/*
* Copyright (C) 2016, Bin Meng <bmeng.cn@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0+
*/
DefinitionBlock("dsdt.aml", "DSDT", 2, "U-BOOT", "U-BOOTBL", 0x00010000)
{
/* platform specific */
#include <asm/arch/acpi/platform.asl>
/* board specific */
#include "acpi/mainboard.asl"
}

View File

@@ -0,0 +1,13 @@
/*
* Copyright (C) 2015, Google, Inc
*
* SPDX-License-Identifier: GPL-2.0+
*/
#include <common.h>
#include <asm/gpio.h>
int arch_early_init_r(void)
{
return 0;
}

View File

@@ -0,0 +1,9 @@
/*
* Copyright (C) 2015, Google, Inc
*
* SPDX-License-Identifier: GPL-2.0+
*/
.globl early_board_init
early_board_init:
jmp early_board_init_ret