qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v4 00/23] Add Faraday A369 SoC platform support


From: Kuo-Jung Su
Subject: [Qemu-devel] [PATCH v4 00/23] Add Faraday A369 SoC platform support
Date: Tue, 26 Feb 2013 17:13:51 +0800

From: Kuo-Jung Su <address@hidden>

These patches introduce Faraday A36x SoC platform support.

Here are some public documents for your reference.

http://www.faraday-tech.com/html/documentation/index.html

The pre-built images are also available at my Google Drive:

https://docs.google.com/folder/d/0BwfiewvSmUgAX2pTTmtUMGFCZW8/edit

Here is the image file list:

1. android-4.0.4/zImage: A369 linux-3.0.31
2. android-4.0.4/romfs-4.0.4.tar.bz2: android-4.0.4
3. nand.img.bz2: A369 nand flash image
4. rom.img.bz2: A369 embedded ROM image
5. u-boot: A369 u-boot-2012.10 ELF file
6. zImage: A369 linux-3.4.12 + initramfs
7. README

Changes for v4:

   1. target-arm: Add the unapplied patch for faraday ARMv5TE cores.
   2. hw: Add the unapplied patch for wm8731.
   3. hw/nand: Add the unapplied patches.
   4. hw/arm: Fix the issues addressed by Peter.
   5. hw/arm/faraday_a369: Replace pointer to (mach *) with QOM APIs.
   6. hw/arm/faraday_a369: Add a error message for ROM mode when it failed to 
load image.
   7. hw/arm/faraday_a369: Update AHB remap routine to avoid address overlap.
   8. hw/arm/faraday_a360: Removed. The ftmac110 and fttmr010 has been added to 
A369
                           as external AHB devices.

Changes for v3:
   
   1. [global] review all commit log make sure it correctly
               describe the QEMU model.
   2. [global] reformat the entire patch series to be compilable 
               on its own. Thanks to Andreas and Igor.
   3. [global] move all files from 'hw' into 'hw/arm', and 
               rename a36x.c to faraday_a36x.c
   4. [global] update lisence to GPLv2+
   5. [global] rename both struct and typedef names to CamelCase.
   6. [global] turn printfs into DPRINTF() which is controlled 
               by 'DEBUG_FARADAY'
   7. [global] remove disabled code.
   8. [global] add header files with descriptive defines to 
               ftintc020, ftrtc011, fttmr010 ... etc.
   9. [global] update all header file to have a 'HW_ARM_' prefix 
               to header guards.
  10. [faraday.h] add parameter names to ftmac110_init() and
                  ftgmac100_init()
  11. [a360/a369] remove printf("xxx %dMB ram.\n"...);
  12. [a360/a369] add 'arm926' as a fail-safe cpu model.
  13. [a360/a369] add DEFAULT_MACHINE_OPTIONS.
  14. [a360/a369] remove USB-EHCI support, it's now a standalone patch.
  15. [a360] replace ftlcdc200 init from sysbus_create_varargs() to
             sysbus_create_simple().
  16. [a360] make PMU a standalone file. (faraday_a360_pmu.c)
  17. [a369] make SCU a standalone file. (faraday_a369_pcu.c)
  18. [a369] make AHBC a standalone file. (ftahbc020.c)
  19. [a369] make DDRC a standalone file. (ftddrii030.c)
  20. [a369] rename ftkbc010 to faraday_a369_keypad.c
  21. [a369] replace ROM emulation with PFLASH.(rom.c is deleted)
  22. [ftsdc010] add sd_data_ready() to data R/W.
  23. [ftsdc010] check 'datacnt' at each read/write to make sure
             buffer would not overflow/underflow and also prevent
             'datacnt' from underflow by subtracted by a 4.
  24. [ftgmac100] add 802.1Q VLAN tag insertion/removal support.
  25. [ftgmac100] replace the dumb timer code with bottom half.
  26. [ftgmac100] rename the struct name of descriptors to CamelCase.
  27. [ftgmac100] replace 'void *' with 'Ftgmac100RXD *' and 
                  'Ftgmac100TXD *' for descriptor read/write.
  28. [ftgmac100] add buffer overflow check in ftgmac100_transmit()
  29. [ftgmac100] add buffer alignment check
  30. [ftmac110] replace the dumb timer code with bottom half.
  31. [ftmac110] rename the struct name of descriptors to CamelCase.
  32. [ftmac110] replace 'void *' with 'Ftmac110RXD *' and
                 'Ftmac110TXD *' for descriptor read/write.
  33. [ftmac110] add buffer overflow check in ftmac110_transmit()
  34. [ftmac110] add buffer alignment check
  35. [ftdmac020] replace the dumb timer code with bottom half.
  36. [ftdmac020] replace cpu_physical_memory_map() with 
                  cpu_physical_memory_read/write() for both simplicity
                  and security enhancement which caused by the un-checked
                  return mapped length from cpu_physical_memory_map().
  37. [ftapbbrg020] replace the dumb timer code with bottom half.
  38. [ftapbbrg020] replace cpu_physical_memory_map() with 
                  cpu_physical_memory_read/write() for both simplicity
                  and security enhancement which caused by the un-checked
                  return mapped length from cpu_physical_memory_map().
  39. [ftrtc011] switch to a slower timer with msec resolution. (i.e. rt_clock)
  40. [ftrtc011] re-calculate RTC counters from host timestamp upon register 
                 read/write and also vm save/restore.

Changes for v2:

   1. coding style fixes (verified with checkpatch.pl)
   2. add Faraday A360 support
   3. add Faraday USB 2.0 EHCI support
   4. merge a369_scu.c into a369.c
   5. introduce QOM coding style
   6. remove lowercase Macros: min(), max()
   7. name all struct as CamelCase style
   8. move function prototypes from .c to faraday.h
   9. use switch instead of if statement in a369_ahbc_write
  10. remove debug prints
  11. update all uarts in A36x to DEVICE_LITTLE_ENDIAN.
  12. move the variable definitions to the start of the function,
      instead of inside a do { } while(0)
  13. remove disabled and commented out code.
  14. use hw_error() and exit() upon pflash register failed.
  15. add const prior to TypeInfo (i.e. static *const*
      TypeInfo ftrtc011_info)
  16. add le32_to_cpu/cpu_to_le32 to the descriptor processing in
      FTGMAC100/FTMAC110.
  17. update the GPL license to GPL v2 (except for FTLCDC200,
      it's based on pl110.c which is LGPL.)
  18. add const to src_* in the DMA controllers (FTAPBBRG020/FTDMAC020)

Kuo-Jung Su (23):
  target-arm: add Faraday ARMv5TE processors support
  hw/arm: add Faraday a369 SoC platform support
  hw/arm: add Faraday FTINTC020 interrupt controller support
  hw/arm: add Faraday FTAHBC020 support
  hw/arm: add Faraday FTDDRII030 support
  hw/arm: add Faraday FTPWMTMR010 timer support
  hw/arm: add Faraday FTWDT010 watchdog timer support
  hw/arm: add Faraday FTRTC011 RTC timer support
  hw/arm: add Faraday FTDMAC020 AHB DMA support
  hw/arm: add Faraday FTAPBBRG020 APB DMA support
  hw/nand.c: bug fix to BUSY/READY status bit
  hw/nand.c: bug fix to erase operation
  hw/arm: add Faraday FTNANDC021 nand flash controller support
  hw/arm: add Faraday FTI2C010 I2C controller support
  hw: add WM8731 codec support
  hw/arm: add Faraday FTSSP010 multi-function controller support
  hw/arm: add Faraday FTGMAC100 1Gbps ethernet support
  hw/arm: add Faraday FTLCDC200 LCD controller support
  hw/arm: add Faraday FTTSC010 touchscreen controller support
  hw/arm: add Faraday FTSDC010 MMC/SD controller support
  hw/arm: add Faraday FTSPI020 SPI flash controller support
  hw/arm: add Faraday FTMAC110 10/100Mbps ethernet support
  hw/arm: add Faraday FTTMR010 timer support

 default-configs/arm-softmmu.mak |    1 +
 hw/Makefile.objs                |    1 +
 hw/arm/Makefile.objs            |   22 ++
 hw/arm/faraday.h                |   77 +++++
 hw/arm/faraday_a369.c           |  130 ++++++++
 hw/arm/faraday_a369_kpd.c       |  229 +++++++++++++
 hw/arm/faraday_a369_scu.c       |  179 ++++++++++
 hw/arm/faraday_a369_soc.c       |  344 +++++++++++++++++++
 hw/arm/ftahbc020.c              |  181 ++++++++++
 hw/arm/ftapbbrg020.c            |  451 +++++++++++++++++++++++++
 hw/arm/ftapbbrg020.h            |   42 +++
 hw/arm/ftddrii030.c             |  163 +++++++++
 hw/arm/ftdmac020.c              |  588 +++++++++++++++++++++++++++++++++
 hw/arm/ftdmac020.h              |  105 ++++++
 hw/arm/ftgmac100.c              |  694 +++++++++++++++++++++++++++++++++++++++
 hw/arm/ftgmac100.h              |  237 +++++++++++++
 hw/arm/fti2c010.c               |  213 ++++++++++++
 hw/arm/fti2c010.h               |   69 ++++
 hw/arm/ftintc020.c              |  358 ++++++++++++++++++++
 hw/arm/ftintc020.h              |   48 +++
 hw/arm/ftkbc010.h               |   42 +++
 hw/arm/ftlcdc200.c              |  503 ++++++++++++++++++++++++++++
 hw/arm/ftlcdc200.h              |  110 +++++++
 hw/arm/ftlcdc200_template.h     |  439 +++++++++++++++++++++++++
 hw/arm/ftmac110.c               |  647 ++++++++++++++++++++++++++++++++++++
 hw/arm/ftmac110.h               |  166 ++++++++++
 hw/arm/ftnandc021.c             |  509 ++++++++++++++++++++++++++++
 hw/arm/ftnandc021.h             |   82 +++++
 hw/arm/ftpwmtmr010.c            |  257 +++++++++++++++
 hw/arm/ftpwmtmr010.h            |   29 ++
 hw/arm/ftrtc011.c               |  343 +++++++++++++++++++
 hw/arm/ftrtc011.h               |   47 +++
 hw/arm/ftsdc010.c               |  355 ++++++++++++++++++++
 hw/arm/ftsdc010.h               |   88 +++++
 hw/arm/ftspi020.c               |  333 +++++++++++++++++++
 hw/arm/ftspi020.h               |   81 +++++
 hw/arm/ftssp010.c               |  475 +++++++++++++++++++++++++++
 hw/arm/ftssp010.h               |   96 ++++++
 hw/arm/fttmr010.c               |  444 +++++++++++++++++++++++++
 hw/arm/fttmr010.h               |   39 +++
 hw/arm/fttsc010.c               |  257 +++++++++++++++
 hw/arm/fttsc010.h               |   37 +++
 hw/arm/ftwdt010.c               |  209 ++++++++++++
 hw/arm/ftwdt010.h               |   33 ++
 hw/i2c.h                        |    6 +
 hw/nand.c                       |   21 +-
 hw/wm8731.c                     |  499 ++++++++++++++++++++++++++++
 include/qemu/bitrev.h           |   25 ++
 target-arm/cpu.c                |   52 +++
 target-arm/cpu.h                |    6 +-
 target-arm/helper.c             |   84 +++++
 target-arm/machine.c            |    4 +
 util/Makefile.objs              |    2 +-
 util/bitrev.c                   |   59 ++++
 54 files changed, 10506 insertions(+), 5 deletions(-)
 create mode 100644 hw/arm/faraday.h
 create mode 100644 hw/arm/faraday_a369.c
 create mode 100644 hw/arm/faraday_a369_kpd.c
 create mode 100644 hw/arm/faraday_a369_scu.c
 create mode 100644 hw/arm/faraday_a369_soc.c
 create mode 100644 hw/arm/ftahbc020.c
 create mode 100644 hw/arm/ftapbbrg020.c
 create mode 100644 hw/arm/ftapbbrg020.h
 create mode 100644 hw/arm/ftddrii030.c
 create mode 100644 hw/arm/ftdmac020.c
 create mode 100644 hw/arm/ftdmac020.h
 create mode 100644 hw/arm/ftgmac100.c
 create mode 100644 hw/arm/ftgmac100.h
 create mode 100644 hw/arm/fti2c010.c
 create mode 100644 hw/arm/fti2c010.h
 create mode 100644 hw/arm/ftintc020.c
 create mode 100644 hw/arm/ftintc020.h
 create mode 100644 hw/arm/ftkbc010.h
 create mode 100644 hw/arm/ftlcdc200.c
 create mode 100644 hw/arm/ftlcdc200.h
 create mode 100644 hw/arm/ftlcdc200_template.h
 create mode 100644 hw/arm/ftmac110.c
 create mode 100644 hw/arm/ftmac110.h
 create mode 100644 hw/arm/ftnandc021.c
 create mode 100644 hw/arm/ftnandc021.h
 create mode 100644 hw/arm/ftpwmtmr010.c
 create mode 100644 hw/arm/ftpwmtmr010.h
 create mode 100644 hw/arm/ftrtc011.c
 create mode 100644 hw/arm/ftrtc011.h
 create mode 100644 hw/arm/ftsdc010.c
 create mode 100644 hw/arm/ftsdc010.h
 create mode 100644 hw/arm/ftspi020.c
 create mode 100644 hw/arm/ftspi020.h
 create mode 100644 hw/arm/ftssp010.c
 create mode 100644 hw/arm/ftssp010.h
 create mode 100644 hw/arm/fttmr010.c
 create mode 100644 hw/arm/fttmr010.h
 create mode 100644 hw/arm/fttsc010.c
 create mode 100644 hw/arm/fttsc010.h
 create mode 100644 hw/arm/ftwdt010.c
 create mode 100644 hw/arm/ftwdt010.h
 create mode 100644 hw/wm8731.c
 create mode 100644 include/qemu/bitrev.h
 create mode 100644 util/bitrev.c

-- 
1.7.9.5




reply via email to

[Prev in Thread] Current Thread [Next in Thread]