This set of patches adds support for Samsung S5PC210-based boards NURI and 
SMDKC210.
Tested on Linux kernel v3.x series.

Usage:
"-smp 2" option is obligatory for now.
To test emulation models user can launch Linux kernel v3.x configured with 
exynos4_defconfig configuration.
This will allow to boot kernel with initrd.

To get support of framebuffer by kernel, enable Samsung S3C framebuffer driver  
in configuration file.
    Note: at current time mainline kernel does not support framebuffer properly
    and to get it worked kernel must be patched a little. This problem will be 
solved soon
    by Samsung kernel developers

To get support of ethernet for smdkc210 board by kernel, enable SMSC 
LAN911x/LAN921x families
embedded ethernet driver in configuration file.
    Note: NURI board does not emulate ethernet adapter since it is a mobile 
device. 


Examples:
Boot smdkc210 with NFS root support.
qemu-system-arm -kernel ./zImage -append "ip=dhcp root=/dev/nfs 
nfsroot=10.0.2.2:/srv/nfs/ rw " -M smdkc210 -smp 2

Boot smdkc210 with NFS root support and serial redirected to terminal
qemu-system-arm -kernel ./zImage -append "console=ttySAC0,115200n8 ip=dhcp 
root=/dev/nfs nfsroot=10.0.2.2:/srv/nfs/ rw " -serial stdio -M smdkc210 -smp 2

Boot NURI with initrd root support and serial redirected to terminal
qemu-system-arm -kernel ./zImage -append "console=ttySAC0,115200n8 
root=/dev/ram rw " -serial stdio -M nuri -smp 2 -initrd ./rootfs.ext2


Changelog:
 v8->v9
 - exynos4210.c: secondary cpu bootloader memory region allocation is removed 
(it resides in already allocated IROM),
                 removed hack memory region for secondary CPU boot loader (PMU 
device added).
                 added l2x0 cache controller
 - exynos4210_pmu.c: PMU registers modelling device added to emulation. It is 
needed since PMU contains 
                     INFORM5 register which is used to boot the secondary CPUs.
 - exynos4_boards.c: indentation fix
 - exynos4210_uart.c: indentation fix, BREAK event handling code added, fixed 
size of allocated registers region
 - exynos4210_gic.c: number of IRQs passed to gic_init() due to last mainline 
update.
 - lan9118.: added VMSTATE fields due to last mainline update.
 v7->v8
 - exynos4_boards.c: lack of spaces fix
 - exynos4210_gic.c: lack of spaces fix
 - exynos4210_combiner.c: lack of spaces fix
 - exynos4210_uart.c: lack of spaces fix, indentation fix
 - exynos4210_mct.c: ULL suffix fix
 v6->v7
 - exynos4210_pwm.c: added usage of "ptimer.h"
 - exynos4210_mct.c: added usage of "ptimer.h"
 v5->v6
 - arm_boot.c, vexpress.c, realview.c: board should specify smp_bootreg_addr if 
its ncpu > 1
 - patch order changed, "boot secondary CPU" is included in "exynos boards" 
patch.
 - exynos4210_mct.c: usage of UINTX_MAX, removed excessive property list, fixed 
indentation,
                     fixed comments
 - exynos4210_pwm.c: spaces and brakcets in macros, removed excessive property 
list,
                     fixed indentation,
 - exynos4210_combiner.c: removed excessive reset, fixed indentation, fixed 
comments
 - exynos4210_gic.c: fixed indentation, fixed syntax
 - exynos4210_uart.c: fixed indentation, fixed syntax
 - exynos4210.c: fixed comments
 - Makefile.target: removed "\"
 - hw/exynos4210_fimd.c: rebased against current master: all manipulation with 
physical pages are dropped and
                         replaced with new memory API functions;

                         added three new members to winow's state: 
MemoryRegionSection to describe section
                         of system RAM containing current framebuffer, host 
pointer to framebuffer data and
                         framebuffer length;

                         mapping of framebuffer now performed only on 
framebuffer settings change
                         instead on every display update;

                         bytes swap in uint64 variable now performed with 
standard QEMU bswap64 function;

                         blencon register type changed to uint32_t;

                         fixed incorrect spelling of "palette" word;

                         if ... else statements in exynos4210_fimd_read() and 
exynos4210_fimd_write() are
                         replaced with switch() {} statement.
 
    

 v4->v5
 - hw/exynos4210_gic.c: Use memory aliases for CPU interface and Distributer.
   Excessive RW functions are removed.
 - hw/exynos4210_pwm.c and hw/exynos4210_mct.c: Saving of timers added.
 - hw/exynos4210_uart.c: VMSTATE version_id fixed.
 v3->v4
 - Split Exynos SOC and boards.
 - Temporary removed SD and CMU support to post later.
 - Lan9118 remarks took into account.
 - Secondary CPU bootloader remarks took into account.
 - PWM remarks took into account.
 - UART remarks took into account.
 v2->v3
 - Reverted hw/arm_gic.c modification
 - Added IRQ Gate to Exynos4210 board.

Evgeny Voevodin (6):
  ARM: exynos4210: IRQ subsystem support.
  ARM: Samsung exynos4210-based boards emulation
  ARM: exynos4210: PWM support.
  ARM: exynos4210: MCT support.
  hw/lan9118: Add basic 16-bit mode support.
  hw/exynos4210.c: Add LAN support for SMDKC210.

Maksim Kozlov (2):
  ARM: exynos4210: UART support
  ARM: exynos4210: Added PMU register model.

Mitsyanko Igor (1):
  Exynos4210: added display controller implementation

 Makefile.target          |    3 +
 hw/exynos4210.c          |  272 +++++++
 hw/exynos4210.h          |  131 ++++
 hw/exynos4210_combiner.c |  472 ++++++++++++
 hw/exynos4210_fimd.c     | 1924 ++++++++++++++++++++++++++++++++++++++++++++++
 hw/exynos4210_gic.c      |  436 +++++++++++
 hw/exynos4210_mct.c      | 1479 +++++++++++++++++++++++++++++++++++
 hw/exynos4210_pmu.c      |  549 +++++++++++++
 hw/exynos4210_pwm.c      |  413 ++++++++++
 hw/exynos4210_uart.c     |  661 ++++++++++++++++
 hw/exynos4_boards.c      |  166 ++++
 hw/lan9118.c             |  122 +++-
 12 files changed, 6623 insertions(+), 5 deletions(-)
 create mode 100644 hw/exynos4210.c
 create mode 100644 hw/exynos4210.h
 create mode 100644 hw/exynos4210_combiner.c
 create mode 100644 hw/exynos4210_fimd.c
 create mode 100644 hw/exynos4210_gic.c
 create mode 100644 hw/exynos4210_mct.c
 create mode 100644 hw/exynos4210_pmu.c
 create mode 100644 hw/exynos4210_pwm.c
 create mode 100644 hw/exynos4210_uart.c
 create mode 100644 hw/exynos4_boards.c

-- 
1.7.4.1


Reply via email to