[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
- [Qemu-devel] [PATCH v4 00/23] Add Faraday A369 SoC platform support,
Kuo-Jung Su <=
- [Qemu-devel] [PATCH v4 01/23] target-arm: add Faraday ARMv5TE processors support, Kuo-Jung Su, 2013/02/26
- [Qemu-devel] [PATCH v4 02/23] hw/arm: add Faraday a369 SoC platform support, Kuo-Jung Su, 2013/02/26
- [Qemu-devel] [PATCH v4 03/23] hw/arm: add Faraday FTINTC020 interrupt controller support, Kuo-Jung Su, 2013/02/26
- [Qemu-devel] [PATCH v4 04/23] hw/arm: add Faraday FTAHBC020 support, Kuo-Jung Su, 2013/02/26
- [Qemu-devel] [PATCH v4 05/23] hw/arm: add Faraday FTDDRII030 support, Kuo-Jung Su, 2013/02/26
- [Qemu-devel] [PATCH v4 07/23] hw/arm: add Faraday FTWDT010 watchdog timer support, Kuo-Jung Su, 2013/02/26
- [Qemu-devel] [PATCH v4 06/23] hw/arm: add Faraday FTPWMTMR010 timer support, Kuo-Jung Su, 2013/02/26
- [Qemu-devel] [PATCH v4 08/23] hw/arm: add Faraday FTRTC011 RTC timer support, Kuo-Jung Su, 2013/02/26
- [Qemu-devel] [PATCH v4 09/23] hw/arm: add Faraday FTDMAC020 AHB DMA support, Kuo-Jung Su, 2013/02/26
- [Qemu-devel] [PATCH v4 11/23] hw/nand.c: bug fix to BUSY/READY status bit, Kuo-Jung Su, 2013/02/26