Hi Marcin,
I have started looking at this.
First some high-level comments: * It would be really helpful if you could put these patches in some public repo, so that I could cherry-pick them across (and avoid the issues of CR getting dropped in transmission). * I get several build breakages due to "may be used uninitalized" type situations - both with GCC and CLANG. * Could you manually enable -Wno-maybe-uninitialized (GCC) or -Wsometimes-uninitialized (CLANG) and clean up these instances? (Add to end of DEFINE GCC_AARCH64_CC_FLAGS line in EDK2 BaseTools/Conf/tools_def.template, then do a git clean -fx in edk2/Conf before rebuilding.) * Out of personal interest - which toolchain are you using that doesn't complain about this? * Similar to recent discussions on edk2-devel with Evan Lloyd, we would want Signed-off-by: by at both the poster and the author. * I see you have imported the old EDK ramdisk driver. I keep seeing new ports doing this, even though there is now a ramdisk driver in EDK2 - MdeModulePkg/Universal/Disk/RamDiskDxe. I understand from Heyi that there are differences, and potentially bits missing, but I would really like to see if we can get rid of these non-upstream bits. Could you discuss with Heyi.Guo@linaro.org (optimally with this list on cc) what is missing from RamDiskDxe?
Then some lower-level ones: * The dependency on I2C_FLAG_NORESTART needs to be resolved. It could be that this would be useful to add to PI spec ... regardless, until it is there it is probably safer to use a higher value in a local definition. * Needs to be resolved for MvI2cDxe.c and MvEeprom.c. * Drivers/Spi/SpiDxe.inf is lacking an explicit dependency on IoLib, causing a build failure.
Thanks!
/ Leif
On Wed, Mar 16, 2016 at 05:02:11PM +0100, Marcin Wojtas wrote:
Hello,
This series adds initial support for the new Armada 7K and 8K Marvell 64 bits processors. Details about those processors based on the Cortex-A72 can be found at:
http://www.marvell.com/embedded-processors/armada-70xx/ http://www.marvell.com/embedded-processors/armada-80xx/
This series comprise following features:
- Core support
- GICv2
- ARM architected timer
- ARM watchdog timer
- Marvell UART port
- Two development boards support (APN806-DB and Armada7040-rz-DB)
- Platform UART driver
- SPI
- SoC SPI controller driver
- SPI Flash driver
- 'sf' Shell command for using the flash
- 'fupdate' Shell command for updating image in flash
- I2C
- SoC I2C controller driver
- Eeprom driver
- 'eeprom' Shell command
- MppLib - library needed for pin-multiplexing configuration
- Ramdisk
- Imported driver from EFI-Toolkit 1.0 project
- Enable dynamically allocated space for virtual filesystem
Each change is described in the commit logs and in dedicated .txt documentation submitted along with the code. Any remarks and comments would be welcome.
Best regards, Marcin Wojtas
Bartosz Szczepanek (6): Drivers/I2c: Create MvI2cDxe driver Platforms/Marvell: Copy BdsLib to Armada7040 directory Platforms/Marvell: Add necessary BdsLibConnectAll call Drivers/I2c: Add MvEeprom driver Platforms/Marvell: Enable EEPROM driver on Armada7040 platforms Aplications/Eeprom: Add 'eeprom' command to shell
Jan Dąbroś (16): Platforms/Marvell: Create MppLib Platforms/Marvell: Armada: Enable MppLib on Armada7040 platforms Platforms/Marvell: Enable I2C driver on Armada7040 platforms Platforms/Marvell: Enable 'eeprom' command on Armada7040 platforms Platforms/Marvell: Add EFI_SPI_MASTER_PROTOCOL Drivers/Spi: Add Spi master driver Platforms/Marvell: Enable Spi master driver for Armada7040 boards Platforms/Marvell: Add EFI_SPI_FLASH_PROTOCOL Drivers/Spi: Implement Spi flash driver Platforms/Marvell: Enable Spi flash driver on Armada7040 platforms Applications/SpiTool: Add 'sf' command utility Platforms/Marvell: Enable 'sf' command on Armada7040 platforms Drivers/Ramdisk: Import Ramdisk driver from EFI Toolkit 2.0 Drivers/Ramdisk: Adjust Ramdisk driver to EDK2.0 Applications/FirmwareUpdate: Add 'fupdate' comand to shell Platforms/Marvell: Enable 'fupdate' command on Armada7040 platforms
Marcin Wojtas (1): Platforms/Marvell: Enable Ramdisk usage on Armada7040 platforms
Yehuda Yitschak (3): Chips/Marvell: Add serial port for Marvell SOCs Platforms/Marvell: Add initial support for Armada7040 SOC lib Platforms/Marvell: Add initial support for Armada7040 Platforms
Applications/EepromCmd/EepromCmd.c | 363 +++++++++++ Applications/EepromCmd/EepromCmd.inf | 74 +++ Applications/EepromCmd/EepromCmd.uni | Bin 0 -> 6816 bytes Applications/FirmwareUpdate/FUpdate.c | 437 +++++++++++++ Applications/FirmwareUpdate/FUpdate.inf | 69 +++ Applications/FirmwareUpdate/FUpdate.uni | Bin 0 -> 5838 bytes Applications/SpiTool/SpiFlashCmd.c | 528 ++++++++++++++++ Applications/SpiTool/SpiFlashCmd.inf | 76 +++ Applications/SpiTool/SpiFlashCmd.uni | Bin 0 -> 7216 bytes .../Library/SerialPortLib/DwSerialPortLib.c | 303 +++++++++ .../Library/SerialPortLib/DwSerialPortLib.inf | 43 ++ Documentation/Marvell/Drivers/EepromDriver.txt | 95 +++ Documentation/Marvell/Drivers/I2cDriver.txt | 64 ++ Documentation/Marvell/Drivers/SpiDriver.txt | 116 ++++ Documentation/Marvell/PortingGuide/I2c.txt | 16 + Documentation/Marvell/PortingGuide/Mpp.txt | 48 ++ Documentation/Marvell/PortingGuide/Ramdisk.txt | 7 + Documentation/Marvell/PortingGuide/Spi.txt | 15 + Documentation/Marvell/PortingGuide/SpiFlash.txt | 19 + Drivers/I2c/Devices/MvEeprom/MvEeprom.c | 292 +++++++++ Drivers/I2c/Devices/MvEeprom/MvEeprom.h | 88 +++ Drivers/I2c/Devices/MvEeprom/MvEeprom.inf | 70 +++ Drivers/I2c/MvI2cDxe/MvI2cDxe.c | 686 +++++++++++++++++++++ Drivers/I2c/MvI2cDxe/MvI2cDxe.h | 252 ++++++++ Drivers/I2c/MvI2cDxe/MvI2cDxe.inf | 73 +++ Drivers/Ramdisk/Ramdisk.c | 386 ++++++++++++ Drivers/Ramdisk/Ramdisk.h | 142 +++++ Drivers/Ramdisk/Ramdisk.inf | 73 +++ Drivers/Spi/Devices/MvSpiFlash.c | 523 ++++++++++++++++ Drivers/Spi/Devices/MvSpiFlash.h | 130 ++++ Drivers/Spi/Devices/MvSpiFlash.inf | 74 +++ Drivers/Spi/SpiDxe.c | 376 +++++++++++ Drivers/Spi/SpiDxe.h | 145 +++++ Drivers/Spi/SpiDxe.inf | 73 +++ Platforms/Marvell/Armada/Apn806.dsc | 84 +++ Platforms/Marvell/Armada/Armada.dsc.inc | 460 ++++++++++++++ Platforms/Marvell/Armada/Armada7040.fdf | 277 +++++++++ Platforms/Marvell/Armada/Armada7040_rz.dsc | 96 +++ .../Library/Armada7040BdsLib/Armada7040BdsLib.c | 428 +++++++++++++ .../Library/Armada7040BdsLib/Armada7040BdsLib.h | 37 ++ .../Library/Armada7040BdsLib/Armada7040BdsLib.inf | 66 ++ .../Armada7040Lib/AArch64/ArmPlatformHelper.S | 65 ++ .../Armada/Library/Armada7040Lib/Armada7040Lib.c | 156 +++++ .../Armada/Library/Armada7040Lib/Armada7040Lib.inf | 47 ++ .../Library/Armada7040Lib/Armada7040LibMem.c | 73 +++ Platforms/Marvell/Include/Library/MppLib.h | 42 ++ Platforms/Marvell/Include/Protocol/Eeprom.h | 60 ++ Platforms/Marvell/Include/Protocol/Spi.h | 105 ++++ Platforms/Marvell/Include/Protocol/SpiFlash.h | 102 +++ Platforms/Marvell/Library/MppLib/MppLib.c | 181 ++++++ Platforms/Marvell/Library/MppLib/MppLib.inf | 108 ++++ Platforms/Marvell/Marvell.dec | 135 ++++ 52 files changed, 8178 insertions(+) create mode 100644 Applications/EepromCmd/EepromCmd.c create mode 100644 Applications/EepromCmd/EepromCmd.inf create mode 100644 Applications/EepromCmd/EepromCmd.uni create mode 100644 Applications/FirmwareUpdate/FUpdate.c create mode 100644 Applications/FirmwareUpdate/FUpdate.inf create mode 100644 Applications/FirmwareUpdate/FUpdate.uni create mode 100644 Applications/SpiTool/SpiFlashCmd.c create mode 100644 Applications/SpiTool/SpiFlashCmd.inf create mode 100644 Applications/SpiTool/SpiFlashCmd.uni create mode 100644 Chips/Marvell/Library/SerialPortLib/DwSerialPortLib.c create mode 100644 Chips/Marvell/Library/SerialPortLib/DwSerialPortLib.inf create mode 100644 Documentation/Marvell/Drivers/EepromDriver.txt create mode 100644 Documentation/Marvell/Drivers/I2cDriver.txt create mode 100644 Documentation/Marvell/Drivers/SpiDriver.txt create mode 100644 Documentation/Marvell/PortingGuide/I2c.txt create mode 100644 Documentation/Marvell/PortingGuide/Mpp.txt create mode 100644 Documentation/Marvell/PortingGuide/Ramdisk.txt create mode 100644 Documentation/Marvell/PortingGuide/Spi.txt create mode 100644 Documentation/Marvell/PortingGuide/SpiFlash.txt create mode 100644 Drivers/I2c/Devices/MvEeprom/MvEeprom.c create mode 100644 Drivers/I2c/Devices/MvEeprom/MvEeprom.h create mode 100644 Drivers/I2c/Devices/MvEeprom/MvEeprom.inf create mode 100644 Drivers/I2c/MvI2cDxe/MvI2cDxe.c create mode 100644 Drivers/I2c/MvI2cDxe/MvI2cDxe.h create mode 100644 Drivers/I2c/MvI2cDxe/MvI2cDxe.inf create mode 100644 Drivers/Ramdisk/Ramdisk.c create mode 100644 Drivers/Ramdisk/Ramdisk.h create mode 100644 Drivers/Ramdisk/Ramdisk.inf create mode 100644 Drivers/Spi/Devices/MvSpiFlash.c create mode 100644 Drivers/Spi/Devices/MvSpiFlash.h create mode 100644 Drivers/Spi/Devices/MvSpiFlash.inf create mode 100644 Drivers/Spi/SpiDxe.c create mode 100644 Drivers/Spi/SpiDxe.h create mode 100644 Drivers/Spi/SpiDxe.inf create mode 100644 Platforms/Marvell/Armada/Apn806.dsc create mode 100644 Platforms/Marvell/Armada/Armada.dsc.inc create mode 100644 Platforms/Marvell/Armada/Armada7040.fdf create mode 100644 Platforms/Marvell/Armada/Armada7040_rz.dsc create mode 100644 Platforms/Marvell/Armada/Library/Armada7040BdsLib/Armada7040BdsLib.c create mode 100644 Platforms/Marvell/Armada/Library/Armada7040BdsLib/Armada7040BdsLib.h create mode 100644 Platforms/Marvell/Armada/Library/Armada7040BdsLib/Armada7040BdsLib.inf create mode 100644 Platforms/Marvell/Armada/Library/Armada7040Lib/AArch64/ArmPlatformHelper.S create mode 100644 Platforms/Marvell/Armada/Library/Armada7040Lib/Armada7040Lib.c create mode 100644 Platforms/Marvell/Armada/Library/Armada7040Lib/Armada7040Lib.inf create mode 100644 Platforms/Marvell/Armada/Library/Armada7040Lib/Armada7040LibMem.c create mode 100644 Platforms/Marvell/Include/Library/MppLib.h create mode 100644 Platforms/Marvell/Include/Protocol/Eeprom.h create mode 100644 Platforms/Marvell/Include/Protocol/Spi.h create mode 100644 Platforms/Marvell/Include/Protocol/SpiFlash.h create mode 100644 Platforms/Marvell/Library/MppLib/MppLib.c create mode 100644 Platforms/Marvell/Library/MppLib/MppLib.inf create mode 100644 Platforms/Marvell/Marvell.dec
-- 1.8.3.1