cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

aspeed-bmc-tyan-s7106.dts (10426B)


      1// SPDX-License-Identifier: GPL-2.0+
      2/dts-v1/;
      3
      4#include "aspeed-g5.dtsi"
      5#include <dt-bindings/gpio/aspeed-gpio.h>
      6#include <dt-bindings/interrupt-controller/irq.h>
      7
      8/ {
      9	model = "Tyan S7106 BMC";
     10	compatible = "tyan,s7106-bmc", "aspeed,ast2500";
     11
     12	chosen {
     13		stdout-path = &uart5;
     14		bootargs = "console=ttyS4,115200 earlycon";
     15	};
     16
     17	memory@80000000 {
     18		device_type = "memory";
     19		reg = <0x80000000 0x20000000>;
     20	};
     21
     22	reserved-memory {
     23		#address-cells = <1>;
     24		#size-cells = <1>;
     25		ranges;
     26
     27		p2a_memory: region@987f0000 {
     28			no-map;
     29			reg = <0x987f0000 0x00010000>; /* 64KB */
     30		};
     31
     32		vga_memory: framebuffer@9f000000 {
     33			no-map;
     34			reg = <0x9f000000 0x01000000>; /* 16M */
     35		};
     36
     37		gfx_memory: framebuffer {
     38			size = <0x01000000>; /* 16M */
     39			alignment = <0x01000000>;
     40			compatible = "shared-dma-pool";
     41			reusable;
     42		};
     43	};
     44
     45	leds {
     46		compatible = "gpio-leds";
     47
     48		identify {
     49			gpios = <&gpio ASPEED_GPIO(A, 2) GPIO_ACTIVE_LOW>;
     50		};
     51
     52		heartbeat {
     53			gpios = <&gpio ASPEED_GPIO(E, 7) GPIO_ACTIVE_LOW>;
     54		};
     55	};
     56
     57	iio-hwmon {
     58		compatible = "iio-hwmon";
     59		io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>,
     60			<&adc 4>, <&adc 5>, <&adc 6>, <&adc 7>,
     61			<&adc 8>, <&adc 9>, <&adc 10>, <&adc 11>,
     62			<&adc 12>, <&adc 13>, <&adc 14>;
     63	};
     64
     65	iio-hwmon-battery {
     66		compatible = "iio-hwmon";
     67		io-channels = <&adc 15>;
     68	};
     69};
     70
     71&fmc {
     72	status = "okay";
     73	flash@0 {
     74		label = "bmc";
     75		status = "okay";
     76		m25p,fast-read;
     77#include "openbmc-flash-layout.dtsi"
     78	};
     79};
     80
     81&spi1 {
     82	status = "okay";
     83	pinctrl-names = "default";
     84	pinctrl-0 = <&pinctrl_spi1_default>;
     85
     86	flash@0 {
     87		status = "okay";
     88		label = "pnor";
     89		m25p,fast-read;
     90	};
     91};
     92
     93&uart1 {
     94	/* Rear RS-232 connector */
     95	status = "okay";
     96	pinctrl-names = "default";
     97	pinctrl-0 = <&pinctrl_txd1_default
     98			&pinctrl_rxd1_default>;
     99};
    100
    101&uart2 {
    102	/* RS-232 connector on header */
    103	status = "okay";
    104	pinctrl-names = "default";
    105	pinctrl-0 = <&pinctrl_txd2_default
    106			&pinctrl_rxd2_default>;
    107};
    108
    109&uart3 {
    110	/* Alternative to vuart to internally connect (route) to uart1
    111	 * when vuart cannot be used due to BIOS limitations.
    112	 */
    113	status = "okay";
    114};
    115
    116&uart4 {
    117	/* Alternative to vuart to internally connect (route) to the
    118	 * external port usually used by uart1 when vuart cannot be
    119	 * used due to BIOS limitations.
    120	 */
    121	status = "okay";
    122};
    123
    124&uart5 {
    125	/* BMC "debug" (console) UART; connected to RS-232 connector
    126	 * on header; selectable via jumpers as alternative to uart2
    127	 */
    128	status = "okay";
    129};
    130
    131&uart_routing {
    132	status = "okay";
    133};
    134
    135&vuart {
    136	status = "okay";
    137
    138	/* We enable the VUART here, but leave it in a state that does
    139	 * not interfere with the SuperIO. The goal is to have both the
    140	 * VUART and the SuperIO available and decide at runtime whether
    141	 * the VUART should actually be used. For that reason, configure
    142	 * an "invalid" IO address and an IRQ that is not used by the
    143	 * BMC.
    144	 */
    145
    146	aspeed,lpc-io-reg = <0xffff>;
    147	aspeed,lpc-interrupts = <15 IRQ_TYPE_LEVEL_HIGH>;
    148};
    149
    150&lpc_ctrl {
    151	status = "okay";
    152};
    153
    154&p2a {
    155	status = "okay";
    156	memory-region = <&p2a_memory>;
    157};
    158
    159&lpc_snoop {
    160	status = "okay";
    161	snoop-ports = <0x80>;
    162};
    163
    164&adc {
    165	status = "okay";
    166};
    167
    168&vhub {
    169	status = "okay";
    170};
    171
    172&pwm_tacho {
    173	status = "okay";
    174	pinctrl-names = "default";
    175	pinctrl-0 = <&pinctrl_pwm0_default
    176			&pinctrl_pwm1_default
    177			&pinctrl_pwm3_default
    178			&pinctrl_pwm4_default>;
    179
    180	/* CPU fan #0 */
    181	fan@0 {
    182		reg = <0x00>;
    183		aspeed,fan-tach-ch = /bits/ 8 <0x00>;
    184	};
    185
    186	/* CPU fan #1 */
    187	fan@1 {
    188		reg = <0x01>;
    189		aspeed,fan-tach-ch = /bits/ 8 <0x01>;
    190	};
    191
    192	/* PWM group for chassis fans #1, #2, #3 and #4  */
    193	fan@2 {
    194		reg = <0x03>;
    195		aspeed,fan-tach-ch = /bits/ 8 <0x02>;
    196	};
    197
    198	fan@3 {
    199		reg = <0x03>;
    200		aspeed,fan-tach-ch = /bits/ 8 <0x03>;
    201	};
    202
    203	fan@4 {
    204		reg = <0x03>;
    205		aspeed,fan-tach-ch = /bits/ 8 <0x04>;
    206	};
    207
    208	fan@5 {
    209		reg = <0x03>;
    210		aspeed,fan-tach-ch = /bits/ 8 <0x05>;
    211	};
    212
    213	/* PWM group for chassis fans #5 and #6  */
    214	fan@6 {
    215		reg = <0x04>;
    216		aspeed,fan-tach-ch = /bits/ 8 <0x06>;
    217	};
    218
    219	fan@7 {
    220		reg = <0x04>;
    221		aspeed,fan-tach-ch = /bits/ 8 <0x07>;
    222	};
    223};
    224
    225&i2c0 {
    226	status = "okay";
    227
    228	/* Hardware monitor with temperature sensors */
    229	nct7802@28 {
    230		compatible = "nuvoton,nct7802";
    231		reg = <0x28>;
    232
    233		#address-cells = <1>;
    234		#size-cells = <0>;
    235
    236		channel@0 { /* LTD */
    237			reg = <0>;
    238		};
    239
    240		channel@1 { /* RTD1 */
    241			reg = <1>;
    242			sensor-type = "temperature";
    243			temperature-mode = "thermistor";
    244		};
    245
    246		channel@2 { /* RTD2 */
    247			reg = <2>;
    248			sensor-type = "temperature";
    249			temperature-mode = "thermistor";
    250		};
    251
    252		channel@3 { /* RTD3 */
    253			reg = <3>;
    254			sensor-type = "temperature";
    255		};
    256	};
    257
    258	/* Also connected to:
    259	 * - IPMB pin header
    260	 * - CPU #0 memory error LED @ 0x3A
    261	 * - CPU #1 memory error LED @ 0x3C
    262	 */
    263};
    264
    265&i2c1 {
    266	/* Directly connected to PCH SMBUS #0 */
    267	status = "okay";
    268};
    269
    270&i2c2 {
    271	status = "okay";
    272
    273	/* BMC EEPROM, incl. mainboard FRU */
    274	eeprom@50 {
    275		compatible = "atmel,24c256";
    276		reg = <0x50>;
    277	};
    278
    279	/* Also connected to:
    280	 * - fan header
    281	 * - mini-SAS HD connector
    282	 * - SSATA SGPIO
    283	 * - via switch (BMC_SMB3_PCH_IE_SML3_EN, active low)
    284	 *   to PCH SMBUS #3
    285	 */
    286};
    287
    288&i2c3 {
    289	status = "okay";
    290
    291	/* PSU1 FRU @ 0xA0 */
    292	eeprom@50 {
    293		compatible = "atmel,24c02";
    294		reg = <0x50>;
    295	};
    296
    297	/* PSU2 FRU @ 0xA2 */
    298	eeprom@51 {
    299		compatible = "atmel,24c02";
    300		reg = <0x51>;
    301	};
    302
    303	/* PSU1 @ 0xB0 */
    304	power-supply@58 {
    305		compatible = "pmbus";
    306		reg = <0x58>;
    307	};
    308
    309	/* PSU2 @ 0xB2 */
    310	power-supply@59 {
    311		compatible = "pmbus";
    312		reg = <0x59>;
    313	};
    314
    315	/* Also connected to:
    316	 * - PCH SMBUS #1
    317	 */
    318};
    319
    320&i2c4 {
    321	status = "okay";
    322
    323	/* Connected to:
    324	 * - PCH SMBUS #2
    325	 */
    326
    327	/* Connected via switch to:
    328	 * - CPU #0 channels ABC VDDQ @ 0x80
    329	 * - CPU #0 channels DEF VDDQ @ 0x81
    330	 * - CPU #1 channels ABC VDDQ @ 0x82
    331	 * - CPU #1 channels DEF VDDQ @ 0x83
    332	 * - CPU #0 VCCIO & VMCP @ 0x52
    333	 * - CPU #1 VCCIO & VMCP @ 0x53
    334	 * - CPU #0 VCCIN @ 0xC0
    335	 * - CPU #0 VSA @ 0xC2
    336	 * - CPU #1 VCCIN @ 0xC4
    337	 * - CPU #1 VSA @ 0xC6
    338	 * - J110
    339	 */
    340};
    341
    342&i2c5 {
    343	status = "okay";
    344
    345	/* Connected via switch (PCH_BMC_SMB_SW_P) to:
    346	 * - mainboard FRU @ 0xAE
    347	 * - XDP connector
    348	 * - ME debug header
    349	 * - clock buffer @ 0xD8
    350	 * - i2c4 via switch (PCH_VR_SMBUS_SW_P; controlled by PCH)
    351	 * - PCH SMBUS
    352	 */
    353};
    354
    355&i2c6 {
    356	status = "okay";
    357
    358	/* Connected via switch (BMC_PE_SMB_EN_1_N) to
    359	 * bus mux (selector BMC_PE_SMB_SW_BIT[1..0]) to:
    360	 * - 0,0: PCIE slot 1, SMB #1
    361	 * - 0,1: PCIE slot 1, SMB #2
    362	 * - 1,0: PCIE slot 2, SMB #1
    363	 * - 1,1: PCIE slot 2, SMB #2
    364	 */
    365
    366	/* Connected via switch (BMC_PE_SMB_EN_2_N) to
    367	 * bus mux (selector BMC_PE_SMB_SW_BIT[1..0]) to:
    368	 * - 0,0: OCP0 (A) SMB
    369	 * - 0,1: OCP0 (C) SMB
    370	 * - 1,0: OCP1 (A) SMB
    371	 * - 1,1: NC
    372	 */
    373};
    374
    375&i2c7 {
    376	status = "okay";
    377
    378	/* Connected to:
    379	 * - PCH SMBUS #4
    380	 */
    381};
    382
    383&i2c8 {
    384	status = "okay";
    385
    386	/* Not connected */
    387};
    388
    389&mac0 {
    390	status = "okay";
    391	use-ncsi;
    392	pinctrl-names = "default";
    393	pinctrl-0 = <&pinctrl_rmii1_default>;
    394};
    395
    396&mac1 {
    397	status = "okay";
    398	pinctrl-names = "default";
    399	pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>;
    400};
    401
    402&ibt {
    403	status = "okay";
    404};
    405
    406&kcs1 {
    407	status = "okay";
    408	aspeed,lpc-io-reg = <0xca8>;
    409};
    410
    411&kcs3 {
    412	status = "okay";
    413	aspeed,lpc-io-reg = <0xca2>;
    414};
    415
    416/* Enable BMC VGA output to show an early (pre-BIOS) boot screen */
    417&gfx {
    418	status = "okay";
    419	memory-region = <&gfx_memory>;
    420};
    421
    422/* We're following the GPIO naming as defined at
    423 * https://github.com/openbmc/docs/blob/master/designs/device-tree-gpio-naming.md.
    424 *
    425 * Notes on led-identify and id-button:
    426 * - A physical button is connected to id-button which
    427 *   triggers the clock on a D flip-flop. The /Q output of the
    428 *   flip-flop drives its D input.
    429 * - The flip-flop's Q output drives led-identify which is
    430 *   connected to LEDs.
    431 * - With that, every button press toggles the LED between on and off.
    432 *
    433 * Notes on power-, reset- and nmi- button and control:
    434 * - The -button signals can be used to monitor physical buttons.
    435 * - The -control signals can be used to actuate the specific
    436 *   operation.
    437 * - In hardware, the -button signals are connected to the -control
    438 *   signals through drivers with the -control signals being
    439 *   protected through diodes.
    440 */
    441&gpio {
    442	status = "okay";
    443	gpio-line-names =
    444	/*A0*/		"",
    445	/*A1*/		"",
    446	/*A2*/		"led-identify", /* in/out: BMC_IDLED_ON_N */
    447	/*A3*/		"",
    448	/*A4*/		"",
    449	/*A5*/		"",
    450	/*A6*/		"",
    451	/*A7*/		"",
    452	/*B0-B7*/	"","","","","","","","",
    453	/*C0*/		"",
    454	/*C1*/		"",
    455	/*C2*/		"",
    456	/*C3*/		"",
    457	/*C4*/		"id-button", /* in/out: BMC_IDBTN_IN_OUT_N */
    458	/*C5*/		"post-complete", /* in: FM_BIOS_POST_CMPLT_N */
    459	/*C6*/		"",
    460	/*C7*/		"",
    461	/*D0*/		"",
    462	/*D1*/		"",
    463	/*D2*/		"power-chassis-good", /* in: SYS_PWROK_BUF */
    464	/*D3*/		"platform-reset", /* in: SYS_PLTRST_N */
    465	/*D4*/		"",
    466	/*D5*/		"",
    467	/*D6*/		"",
    468	/*D7*/		"",
    469	/*E0*/		"power-button", /* in: BMC_PWBTN_IN_N */
    470	/*E1*/		"power-chassis-control", /* out: BMC_PWRBTN_OUT_N */
    471	/*E2*/		"reset-button", /* in: BMC_RSTBTN_IN_N */
    472	/*E3*/		"reset-control", /* out: BMC_RSTBTN_OUT_N */
    473	/*E4*/		"nmi-button", /* in: BMC_NMIBTN_IN_N */
    474	/*E5*/		"nmi-control", /* out: BMC_NMIBTN_OUT_N */
    475	/*E6*/		"",
    476	/*E7*/		"led-heartbeat", /* out: BMC_HEARTBRAT_LED_N */
    477	/*F0*/		"",
    478	/*F1*/		"clear-cmos-control", /* out: BMC_CLR_CMOS_N */
    479	/*F2*/		"",
    480	/*F3*/		"",
    481	/*F4*/		"led-fault", /* out: AST_HW_FAULT_N */
    482	/*F5*/		"",
    483	/*F6*/		"",
    484	/*F7*/		"",
    485	/*G0*/		"BMC_PE_SMB_EN_1_N", /* out */
    486	/*G1*/		"BMC_PE_SMB_EN_2_N", /* out */
    487	/*G2*/		"",
    488	/*G3*/		"",
    489	/*G4*/		"",
    490	/*G5*/		"",
    491	/*G6*/		"",
    492	/*G7*/		"",
    493	/*H0-H7*/	"","","","","","","","",
    494	/*I0-I7*/	"","","","","","","","",
    495	/*J0-J7*/	"","","","","","","","",
    496	/*K0-K7*/	"","","","","","","","",
    497	/*L0-L7*/	"","","","","","","","",
    498	/*M0-M7*/	"","","","","","","","",
    499	/*N0-N7*/	"","","","","","","","",
    500	/*O0-O7*/	"","","","","","","","",
    501	/*P0-P7*/	"","","","","","","","",
    502	/*Q0*/		"",
    503	/*Q1*/		"",
    504	/*Q2*/		"",
    505	/*Q3*/		"",
    506	/*Q4*/		"BMC_PE_SMB_SW_BIT0", /* out */
    507	/*Q5*/		"BMC_PE_SMB_SW_BIT1", /* out */
    508	/*Q6*/		"",
    509	/*Q7*/		"",
    510	/*R0-R7*/	"","","","","","","","",
    511	/*S0-S7*/	"","","","","","","","",
    512	/*T0-T7*/	"","","","","","","","",
    513	/*U0-U7*/	"","","","","","","","",
    514	/*V0-V7*/	"","","","","","","","",
    515	/*W0-W7*/	"","","","","","","","",
    516	/*X0-X7*/	"","","","","","","","",
    517	/*Y0-Y7*/	"","","","","","","","",
    518	/*Z0-Z7*/	"","","","","","","","",
    519	/*AA0*/		"",
    520	/*AA1*/		"",
    521	/*AA2*/		"",
    522	/*AA3*/		"BMC_SMB3_PCH_IE_SML3_EN", /* out */
    523	/*AA4*/		"",
    524	/*AA5*/		"",
    525	/*AA6*/		"",
    526	/*AA7*/		"",
    527	/*AB0-AB7*/	"","","","","","","","";
    528};