[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
- [Qemu-devel] [PATCH v3 00/20] Add Faraday A36x SoC platform support,
Kuo-Jung Su <=
- [Qemu-devel] [PATCH v3 06/20] arm: add Faraday FTWDT010 watchdog timer support, Kuo-Jung Su, 2013/02/06
- [Qemu-devel] [PATCH v3 09/20] arm: add Faraday FTRTC011 RTC timer support, Kuo-Jung Su, 2013/02/06
- [Qemu-devel] [PATCH v3 12/20] arm: add Faraday FTI2C010 I2C controller support, Kuo-Jung Su, 2013/02/06
- [Qemu-devel] [PATCH v3 13/20] arm: add Faraday FTNANDC021 nand flash controller support, Kuo-Jung Su, 2013/02/06
- [Qemu-devel] [PATCH v3 01/20] arm: add Faraday a360 SoC platform support, Kuo-Jung Su, 2013/02/06