qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH v3 00/20] Add Faraday A36x SoC platform support


From: Kuo-Jung Su
Subject: [Qemu-devel] [PATCH v3 00/20] Add Faraday A36x SoC platform support
Date: Wed, 6 Feb 2013 17:45:04 +0800

From: Kuo-Jung Su <address@hidden>

These patches introduce Faraday A36x SoC platform support.

Faraday provides ARMv4/ARMv5TE compatible solutions,
and focus on ASIC design service.

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 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 (20):
  arm: add Faraday a360 SoC platform support
  arm: add Faraday a369 SoC platform support
  arm: add Faraday FTAHBC020 support
  arm: add Faraday FTDDRII030 support
  arm: add Faraday FTINTC020 interrupt controller support
  arm: add Faraday FTWDT010 watchdog timer support
  arm: add Faraday FTTMR010 timer support
  arm: add Faraday FTPWMTMR010 timer support
  arm: add Faraday FTRTC011 RTC timer support
  arm: add Faraday FTDMAC020 AHB DMA support
  arm: add Faraday FTAPBBRG020 APB DMA support
  arm: add Faraday FTI2C010 I2C controller support
  arm: add Faraday FTNANDC021 nand flash controller support
  arm: add Faraday FTSSP010 multi-function controller support
  arm: add Faraday FTMAC110 10/100Mbps ethernet support
  arm: add Faraday FTGMAC100 1Gbps ethernet support
  arm: add Faraday FTLCDC200 LCD controller support
  arm: add Faraday FTTSC010 touchscreen controller support
  arm: add Faraday FTSDC010 MMC/SD controller support
  arm: add Faraday FTSPI020 SPI flash controller support

 hw/arm/Makefile.objs         |   20 ++
 hw/arm/faraday.h             |   52 +++
 hw/arm/faraday_a360.c        |  210 ++++++++++++
 hw/arm/faraday_a360_pmu.c    |  102 ++++++
 hw/arm/faraday_a369.c        |  322 ++++++++++++++++++
 hw/arm/faraday_a369_keypad.c |  234 +++++++++++++
 hw/arm/faraday_a369_scu.c    |  188 +++++++++++
 hw/arm/ftahbc020.c           |  185 +++++++++++
 hw/arm/ftapbbrg020.c         |  437 ++++++++++++++++++++++++
 hw/arm/ftapbbrg020.h         |   41 +++
 hw/arm/ftddrii030.c          |  174 ++++++++++
 hw/arm/ftdmac020.c           |  581 ++++++++++++++++++++++++++++++++
 hw/arm/ftdmac020.h           |  105 ++++++
 hw/arm/ftgmac100.c           |  757 ++++++++++++++++++++++++++++++++++++++++++
 hw/arm/ftgmac100.h           |  177 ++++++++++
 hw/arm/fti2c010.c            |  206 ++++++++++++
 hw/arm/fti2c010.h            |   62 ++++
 hw/arm/ftintc020.c           |  356 ++++++++++++++++++++
 hw/arm/ftintc020.h           |   48 +++
 hw/arm/ftkbc010.h            |   26 ++
 hw/arm/ftlcdc200.c           |  505 ++++++++++++++++++++++++++++
 hw/arm/ftlcdc200.h           |  110 ++++++
 hw/arm/ftlcdc200_template.h  |  439 ++++++++++++++++++++++++
 hw/arm/ftmac110.c            |  681 +++++++++++++++++++++++++++++++++++++
 hw/arm/ftmac110.h            |  131 ++++++++
 hw/arm/ftnandc021.c          |  515 ++++++++++++++++++++++++++++
 hw/arm/ftnandc021.h          |   55 +++
 hw/arm/ftpwmtmr010.c         |  246 ++++++++++++++
 hw/arm/ftpwmtmr010.h         |   25 ++
 hw/arm/ftrtc011.c            |  406 ++++++++++++++++++++++
 hw/arm/ftrtc011.h            |   32 ++
 hw/arm/ftsdc010.c            |  385 +++++++++++++++++++++
 hw/arm/ftsdc010.h            |   88 +++++
 hw/arm/ftspi020.c            |  345 +++++++++++++++++++
 hw/arm/ftspi020.h            |   50 +++
 hw/arm/ftssp010.c            |  554 +++++++++++++++++++++++++++++++
 hw/arm/ftssp010.h            |   91 +++++
 hw/arm/fttmr010.c            |  446 +++++++++++++++++++++++++
 hw/arm/fttmr010.h            |   38 +++
 hw/arm/fttsc010.c            |  260 +++++++++++++++
 hw/arm/fttsc010.h            |   23 ++
 hw/arm/ftwdt010.c            |  205 ++++++++++++
 hw/arm/ftwdt010.h            |   23 ++
 43 files changed, 9936 insertions(+)
 create mode 100644 hw/arm/faraday.h
 create mode 100644 hw/arm/faraday_a360.c
 create mode 100644 hw/arm/faraday_a360_pmu.c
 create mode 100644 hw/arm/faraday_a369.c
 create mode 100644 hw/arm/faraday_a369_keypad.c
 create mode 100644 hw/arm/faraday_a369_scu.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

-- 
1.7.9.5




reply via email to

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