[U-Boot] [RFC PATCH 1/6] x86: Add header files for Intel Quark SoC defines
Bin Meng
bmeng.cn at gmail.com
Thu Jan 29 02:58:28 CET 2015
Hi Simon,
On Thu, Jan 29, 2015 at 2:04 AM, Simon Glass <sjg at chromium.org> wrote:
> Hi Bin,
>
> On 28 January 2015 at 07:19, Bin Meng <bmeng.cn at gmail.com> wrote:
>> device.h for integrated pci devices' bdf on Quark SoC and quark.h for
>> various memory-mapped and i/o-mapped base addresses within SoC.
>>
>> Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
>> ---
>>
>> arch/x86/include/asm/arch-quark/device.h | 28 ++++++++++++++++
>> arch/x86/include/asm/arch-quark/quark.h | 57 ++++++++++++++++++++++++++++++++
>> 2 files changed, 85 insertions(+)
>> create mode 100644 arch/x86/include/asm/arch-quark/device.h
>> create mode 100644 arch/x86/include/asm/arch-quark/quark.h
>>
>> diff --git a/arch/x86/include/asm/arch-quark/device.h b/arch/x86/include/asm/arch-quark/device.h
>> new file mode 100644
>> index 0000000..4af3ded
>> --- /dev/null
>> +++ b/arch/x86/include/asm/arch-quark/device.h
>> @@ -0,0 +1,28 @@
>> +/*
>> + * Copyright (C) 2015, Bin Meng <bmeng.cn at gmail.com>
>> + *
>> + * SPDX-License-Identifier: GPL-2.0+
>> + */
>> +
>> +#ifndef _QUARK_DEVICE_H_
>> +#define _QUARK_DEVICE_H_
>> +
>> +#include <pci.h>
>> +
>> +#define QUARK_HOST_BRIDGE PCI_BDF(0, 0, 0)
>> +#define QUARK_MMC_SDIO PCI_BDF(0, 20, 0)
>> +#define QUARK_UART0 PCI_BDF(0, 20, 1)
>> +#define QUARK_USB_DEVICE PCI_BDF(0, 20, 2)
>> +#define QUARK_USB_EHCI PCI_BDF(0, 20, 3)
>> +#define QUARK_USB_OHCI PCI_BDF(0, 20, 4)
>> +#define QUARK_UART1 PCI_BDF(0, 20, 5)
>> +#define QUARK_EMAC0 PCI_BDF(0, 20, 6)
>> +#define QUARK_EMAC1 PCI_BDF(0, 20, 7)
>> +#define QUARK_SPI0 PCI_BDF(0, 21, 0)
>> +#define QUARK_SPI1 PCI_BDF(0, 21, 1)
>> +#define QUARK_I2C_GPIO PCI_BDF(0, 21, 2)
>> +#define QUARK_PCIE0 PCI_BDF(0, 23, 0)
>> +#define QUARK_PCIE1 PCI_BDF(0, 23, 1)
>> +#define QUARK_LEGACY_BRIDGE PCI_BDF(0, 31, 0)
>> +
>> +#endif /* _QUARK_DEVICE_H_ */
>> diff --git a/arch/x86/include/asm/arch-quark/quark.h b/arch/x86/include/asm/arch-quark/quark.h
>> new file mode 100644
>> index 0000000..6eef2d1
>> --- /dev/null
>> +++ b/arch/x86/include/asm/arch-quark/quark.h
>> @@ -0,0 +1,57 @@
>> +/*
>> + * Copyright (C) 2015, Bin Meng <bmeng.cn at gmail.com>
>> + *
>> + * SPDX-License-Identifier: GPL-2.0+
>> + */
>> +
>> +#ifndef _QUARK_H_
>> +#define _QUARK_H_
>> +
>> +/* The following are Memory Base Addresses */
>> +
>> +/* DRAM */
>> +#define DRAM_BASE 0x00000000
>> +#define DRAM_MAX_SIZE 0x80000000
>> +
>> +/* eSRAM */
>> +#define ESRAM_BASE (DRAM_BASE + DRAM_MAX_SIZE)
>> +#define ESRAM_SIZE 0x80000
>> +
>> +/* SMM Control */
>> +
>> +/* PCIe ECAM */
>> +#define PCIE_ECAM_BASE 0xE0000000
>
> Can we use lower case hex?
>
Sure. But I wonder if there is any coding standard that requires such
address needs to be in lower case hex?
> I suppose this one will move to Kconfig before we apply it?
Yes, this one can be moved to Kconfig after your Minowmax series.
> What about the others?
These base addresses can be relocatable, just like the PCIe ECAM, but
requires the person who knows what they exactly mean. These values are
actually suggested by Intel's UEFI firmware writer guide, so I would
like to put them just in header file. However it there any rule on
what needs to be put in Kconfig?
>> +
>> +/* RCBA */
>> +#define RCBA_BASE 0xFED1C000
>> +
>> +/* Memory BAR Enable */
>> +#define MEM_BAR_EN 0x00000001
>> +
>> +/* 64KiB of RMU binary in flash */
>> +#define RMU_BINARY_SIZE 0x10000
>> +
>> +/* The following are I/O Base Addresses */
>> +
>> +/* ACPI PM1 Block */
>> +#define ACPI_PM1_BASE 0x1000
>> +
>> +/* ACPI P Block */
>> +#define ACPI_P_BASE 0x1010
>> +
>> +/* SPI DMA */
>> +#define SPI_DMA_BASE 0x1020
>> +
>> +/* GPIO */
>> +#define GPIO_BASE 0x1080
>> +
>> +/* GPE0 */
>> +#define GPE0_BASE 0x1100
>> +
>> +/* WDT */
>> +#define WDT_BASE 0x1140
>> +
>> +/* I/O BAR Enable */
>> +#define IO_BAR_EN 0x80000000
>> +
>> +#endif /* _QUARK_H_ */
>> --
Regards,
Bin
More information about the U-Boot
mailing list