This adds basic support to Intel Cougar Canyon 2 board, a board based on Chief River platform with an Ivy Bridge processor and a Panther Point chipset. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>master
parent
87077e97d1
commit
a2e3b05e16
@ -0,0 +1,104 @@ |
||||
/* |
||||
* Copyright (C) 2016, Bin Meng <bmeng.cn@gmail.com> |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
/dts-v1/; |
||||
|
||||
/include/ "skeleton.dtsi" |
||||
/include/ "serial.dtsi" |
||||
/include/ "keyboard.dtsi" |
||||
/include/ "rtc.dtsi" |
||||
/include/ "tsc_timer.dtsi" |
||||
|
||||
/ { |
||||
model = "Intel Cougar Canyon 2"; |
||||
compatible = "intel,cougarcanyon2", "intel,chiefriver"; |
||||
|
||||
aliases { |
||||
spi0 = &spi0; |
||||
}; |
||||
|
||||
config { |
||||
silent_console = <0>; |
||||
}; |
||||
|
||||
chosen { |
||||
stdout-path = "/serial"; |
||||
}; |
||||
|
||||
microcode { |
||||
update@0 { |
||||
#include "microcode/m12306a2_00000008.dtsi" |
||||
}; |
||||
update@1 { |
||||
#include "microcode/m12306a4_00000007.dtsi" |
||||
}; |
||||
update@2 { |
||||
#include "microcode/m12306a5_00000007.dtsi" |
||||
}; |
||||
update@3 { |
||||
#include "microcode/m12306a8_00000010.dtsi" |
||||
}; |
||||
update@4 { |
||||
#include "microcode/m12306a9_0000001b.dtsi" |
||||
}; |
||||
}; |
||||
|
||||
fsp { |
||||
compatible = "intel,ivybridge-fsp"; |
||||
fsp,enable-ht; |
||||
}; |
||||
|
||||
pci { |
||||
#address-cells = <3>; |
||||
#size-cells = <2>; |
||||
compatible = "pci-x86"; |
||||
u-boot,dm-pre-reloc; |
||||
ranges = <0x02000000 0x0 0xc0000000 0xc0000000 0 0x10000000 |
||||
0x42000000 0x0 0xd0000000 0xd0000000 0 0x10000000 |
||||
0x01000000 0x0 0x2000 0x2000 0 0xe000>; |
||||
|
||||
pch@1f,0 { |
||||
reg = <0x0000f800 0 0 0 0>; |
||||
compatible = "intel,bd82x6x"; |
||||
u-boot,dm-pre-reloc; |
||||
#address-cells = <1>; |
||||
#size-cells = <1>; |
||||
|
||||
spi0: spi { |
||||
#address-cells = <1>; |
||||
#size-cells = <0>; |
||||
compatible = "intel,ich9-spi"; |
||||
spi-flash@0 { |
||||
reg = <0>; |
||||
compatible = "winbond,w25q64bv", "spi-flash"; |
||||
memory-map = <0xff800000 0x00800000>; |
||||
}; |
||||
}; |
||||
|
||||
gpioa { |
||||
compatible = "intel,ich6-gpio"; |
||||
u-boot,dm-pre-reloc; |
||||
reg = <0 0x10>; |
||||
bank-name = "A"; |
||||
}; |
||||
|
||||
gpiob { |
||||
compatible = "intel,ich6-gpio"; |
||||
u-boot,dm-pre-reloc; |
||||
reg = <0x30 0x10>; |
||||
bank-name = "B"; |
||||
}; |
||||
|
||||
gpioc { |
||||
compatible = "intel,ich6-gpio"; |
||||
u-boot,dm-pre-reloc; |
||||
reg = <0x40 0x10>; |
||||
bank-name = "C"; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
}; |
@ -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 |
@ -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 |
@ -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
|
@ -0,0 +1,58 @@ |
||||
/*
|
||||
* 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/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; |
||||
} |
||||
|
||||
void setup_pch_gpios(u16 gpiobase, const struct pch_gpio_map *gpio) |
||||
{ |
||||
return; |
||||
} |
@ -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 |
@ -0,0 +1,20 @@ |
||||
CONFIG_X86=y |
||||
CONFIG_VENDOR_INTEL=y |
||||
CONFIG_DEFAULT_DEVICE_TREE="cougarcanyon2" |
||||
CONFIG_TARGET_COUGARCANYON2=y |
||||
# CONFIG_CMD_IMLS is not set |
||||
# CONFIG_CMD_FLASH is not set |
||||
CONFIG_CMD_GPIO=y |
||||
# CONFIG_CMD_SETEXPR is not set |
||||
# CONFIG_CMD_NFS is not set |
||||
CONFIG_OF_CONTROL=y |
||||
CONFIG_SPI_FLASH=y |
||||
CONFIG_SPI_FLASH_WINBOND=y |
||||
CONFIG_DM_PCI=y |
||||
CONFIG_DM_RTC=y |
||||
CONFIG_SYS_NS16550=y |
||||
CONFIG_ICH_SPI=y |
||||
CONFIG_TIMER=y |
||||
CONFIG_USB=y |
||||
CONFIG_DM_USB=y |
||||
CONFIG_USE_PRIVATE_LIBGCC=y |
@ -0,0 +1,34 @@ |
||||
/*
|
||||
* Copyright (C) 2016, Bin Meng <bmeng.cn@gmail.com> |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
#ifndef __CONFIG_H |
||||
#define __CONFIG_H |
||||
|
||||
#include <configs/x86-common.h> |
||||
|
||||
#define CONFIG_SYS_MONITOR_LEN (2 << 20) |
||||
#define CONFIG_BOARD_EARLY_INIT_F |
||||
|
||||
#define CONFIG_SMSC_SIO1007 |
||||
|
||||
#define CONFIG_PCI_PNP |
||||
|
||||
#define CONFIG_STD_DEVICES_SETTINGS "stdin=serial,i8042-kbd,usbkbd\0" \ |
||||
"stdout=serial,vga\0" \
|
||||
"stderr=serial,vga\0" |
||||
|
||||
#define CONFIG_SCSI_DEV_LIST \ |
||||
{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PANTHERPOINT_AHCI_MOBILE} |
||||
|
||||
/* Environment configuration */ |
||||
#define CONFIG_ENV_SECT_SIZE 0x1000 |
||||
#define CONFIG_ENV_OFFSET 0x5ff000 |
||||
|
||||
/* Video is not supported for now */ |
||||
#undef CONFIG_VIDEO |
||||
#undef CONFIG_CFB_CONSOLE |
||||
|
||||
#endif /* __CONFIG_H */ |
Loading…
Reference in new issue