All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [RFC PATCH v3 0/7] x86: New Intel Quark SoC support
@ 2015-02-02 14:35 Bin Meng
  2015-02-02 14:35 ` [U-Boot] [RFC PATCH v3 1/7] x86: Add header files for Intel Quark SoC defines Bin Meng
                   ` (6 more replies)
  0 siblings, 7 replies; 19+ messages in thread
From: Bin Meng @ 2015-02-02 14:35 UTC (permalink / raw)
  To: u-boot

This series adds the first step of bare support for the Intel Quark
SoC support which can be validated on Intel Galileo board.

Intel Quark is a line of 32-bit x86 SoCs by Intel, designed for small
size and low power consumption, and targeted at new markets including
wearable devices. They are smaller and slower than Atom processors and
consume less power. They lack support for SIMD instruction sets (such
as MMX and SSE) and only support embedded operating systems. Quark
powers the Intel Galileo developer microcontroller board. The CPU
instruction set is the same as Pentium (P54C/i586) CPU.

Intel decided to completely publish Quark's hardware specification to
software developers, which includes an SoC datasheet, a UEFI Firmware
Writer's Guide, and a complete reference source code for the UEFI BIOS
which is pre-flahsed on the Galileo board. As of today, the only BIOS
for Galileo is the Intel one with UEFI inteface only. There is no CSM
support yet in that BIOS, neither any 3rd party BIOS vendor provides
support to Quark SoC.

Only one binary blob (exactly 8KiB) is needed which is rmu.bin for
Remote Management Unit. Not like FSP, U-Boot will not call into the
binary. The binary is needed by the Quark SoC itself.

Note there are two generation of Galileo boards, aka gen1 and gen2.
Currently the development work is on gen2, but once we get it boot,
we can easily add the gen1 board (old version).

With this patch series, the generated u-boot.rom could boot the Intel
Galileo board up to fdt relocate, where U-Boot hangs because the DRAM
is not initializaed yet. A follow up patch series will be sent soon
to add support for Memory Reference Code (MRC).

Changes in v3:
- Add several macros for message bus port and registers
- Use lower case hex
- New patch to define macros for pci configuration space access
- Use macros from <asm/pci.h> and <asm/arch/quark.h>
- Add simple help for ACPI PM1, PBLK and GEP0

Changes in v2:
- Rebase to u-boot-86/master
- Add msg_port_setup() and remove MCR_FILL
- Add MSG_BYTE_ENABLE define
- Wrap function declaraion with __ASSEMBLY__
- Replace upper case register names (EAX etc.) with lower case
- Use some macros from <asm/arch/msg_port.h> and <asm/arch/quark.h>
- Use machine-specific
- Move vairous components' base addresses within Quark SoC to Kconfig
- Use Arduino-certified

Bin Meng (7):
  x86: Add header files for Intel Quark SoC defines
  x86: quark: Add routines to access message bus registers
  x86: Define macros for pci configuration space access
  x86: quark: Add Cache-As-RAM initialization
  x86: Add basic Intel Quark processor support
  x86: Add basic Intel Galileo board support
  x86: Enable the Intel quark/galileo build

 arch/x86/Kconfig                           |  17 ++++
 arch/x86/cpu/Makefile                      |   1 +
 arch/x86/cpu/quark/Kconfig                 | 121 +++++++++++++++++++++++++++++
 arch/x86/cpu/quark/Makefile                |   8 ++
 arch/x86/cpu/quark/car.S                   | 105 +++++++++++++++++++++++++
 arch/x86/cpu/quark/dram.c                  |  39 ++++++++++
 arch/x86/cpu/quark/msg_port.c              |  77 ++++++++++++++++++
 arch/x86/cpu/quark/pci.c                   |  70 +++++++++++++++++
 arch/x86/cpu/quark/quark.c                 |  44 +++++++++++
 arch/x86/dts/Makefile                      |   1 +
 arch/x86/dts/galileo.dts                   |  43 ++++++++++
 arch/x86/include/asm/arch-quark/device.h   |  28 +++++++
 arch/x86/include/asm/arch-quark/gpio.h     |  13 ++++
 arch/x86/include/asm/arch-quark/msg_port.h | 106 +++++++++++++++++++++++++
 arch/x86/include/asm/arch-quark/quark.h    |  40 ++++++++++
 arch/x86/include/asm/pci.h                 |  13 +++-
 arch/x86/lib/pci_type1.c                   |   7 +-
 board/intel/galileo/Kconfig                |  21 +++++
 board/intel/galileo/MAINTAINERS            |   6 ++
 board/intel/galileo/Makefile               |   7 ++
 board/intel/galileo/galileo.c              |  19 +++++
 board/intel/galileo/start.S                |   9 +++
 configs/galileo_defconfig                  |   6 ++
 include/configs/galileo.h                  |  53 +++++++++++++
 24 files changed, 847 insertions(+), 7 deletions(-)
 create mode 100644 arch/x86/cpu/quark/Kconfig
 create mode 100644 arch/x86/cpu/quark/Makefile
 create mode 100644 arch/x86/cpu/quark/car.S
 create mode 100644 arch/x86/cpu/quark/dram.c
 create mode 100644 arch/x86/cpu/quark/msg_port.c
 create mode 100644 arch/x86/cpu/quark/pci.c
 create mode 100644 arch/x86/cpu/quark/quark.c
 create mode 100644 arch/x86/dts/galileo.dts
 create mode 100644 arch/x86/include/asm/arch-quark/device.h
 create mode 100644 arch/x86/include/asm/arch-quark/gpio.h
 create mode 100644 arch/x86/include/asm/arch-quark/msg_port.h
 create mode 100644 arch/x86/include/asm/arch-quark/quark.h
 create mode 100644 board/intel/galileo/Kconfig
 create mode 100644 board/intel/galileo/MAINTAINERS
 create mode 100644 board/intel/galileo/Makefile
 create mode 100644 board/intel/galileo/galileo.c
 create mode 100644 board/intel/galileo/start.S
 create mode 100644 configs/galileo_defconfig
 create mode 100644 include/configs/galileo.h

-- 
1.8.2.1

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2015-02-06 20:26 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-02 14:35 [U-Boot] [RFC PATCH v3 0/7] x86: New Intel Quark SoC support Bin Meng
2015-02-02 14:35 ` [U-Boot] [RFC PATCH v3 1/7] x86: Add header files for Intel Quark SoC defines Bin Meng
2015-02-04 15:07   ` Simon Glass
2015-02-06 20:26     ` Simon Glass
2015-02-02 14:35 ` [U-Boot] [RFC PATCH v3 2/7] x86: quark: Add routines to access message bus registers Bin Meng
2015-02-06 20:26   ` Simon Glass
2015-02-02 14:35 ` [U-Boot] [RFC PATCH v3 3/7] x86: Define macros for pci configuration space access Bin Meng
2015-02-04 15:07   ` Simon Glass
2015-02-06 20:26     ` Simon Glass
2015-02-02 14:35 ` [U-Boot] [RFC PATCH v3 4/7] x86: quark: Add Cache-As-RAM initialization Bin Meng
2015-02-04 15:07   ` Simon Glass
2015-02-06 20:26     ` Simon Glass
2015-02-02 14:35 ` [U-Boot] [RFC PATCH v3 5/7] x86: Add basic Intel Quark processor support Bin Meng
2015-02-04 15:07   ` Simon Glass
2015-02-06 20:26     ` Simon Glass
2015-02-02 14:35 ` [U-Boot] [RFC PATCH v3 6/7] x86: Add basic Intel Galileo board support Bin Meng
2015-02-06 20:26   ` Simon Glass
2015-02-02 14:35 ` [U-Boot] [RFC PATCH v3 7/7] x86: Enable the Intel quark/galileo build Bin Meng
2015-02-06 20:26   ` Simon Glass

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.