- 28 Sep, 2018 2 commits
-
-
Yann Gautier authored
Respect official response type and update response to follow official specification. All the MMC_RESPONSE_R(_x) are replaced with each corresponding define. Partly revert 2a82a9c9 for dw_mmc.c: Responses R1, R1B and R5 have CRC. Signed-off-by: Lionel Debieve <lionel.debieve@st.com> Signed-off-by: Yann Gautier <yann.gautier@st.com>
-
Shawn Guo authored
The Poplar is broken on eMMC initialization because of commit 2a82a9c9 ("drivers: emmc: dw_mmc: Add response flag into response ID definition"). It changes the driver behavior on response type handling in dw_send_cmd(), because MMC_RESPONSE_R(2) and MMC_RESPONSE_R2 are different things. MMC core is still sending the former while we already changed to check the latter in dw_mmc driver. This patch fixes R2 response type in MMC core code. It's the same thing as what commit 94522ff7 ("drivers: mmc: Fix R3 response type definition") does for R3 response. With this fix, Poplar is back to work. Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
-
- 19 Sep, 2018 1 commit
-
-
Andre Przywara authored
At the moment we have two I2C stub drivers (for the Allwinner and the Marvell platform), which #include the actual .c driver file. Change this into the more usual design, by renaming and moving the stub drivers into platform specific header files and including these from the actual driver file. The platform specific include directories make sure the driver picks up the right header automatically. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-
- 07 Sep, 2018 2 commits
-
-
Icenowy Zheng authored
Allwinner 64-bit SoCs all use the Mentor Graphics MI2CV I2C controller core, with inverted clear quirk. Add a glue driver for this. Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
-
Icenowy Zheng authored
The I2C controller on Allwinner SoCs after A31 has a inverted interrupt clear flag, which needs to be written 1 (rather than 0 on Marvell SoCs and old Allwinner SoCs) to clear. Add such a quirk to mi2cv driver common code. Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
-
- 05 Sep, 2018 2 commits
-
-
Icenowy Zheng authored
The Marvell A8K SoCs use the MI2CV IP core from Mentor Graphics, which is also used by Allwinner. As Mentor Graphics allows a lot of customization, the MI2CV in the two SoC families are not compatible, and driver modifications are needed. Extract the common code to a MI2CV driver. Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
-
Icenowy Zheng authored
The I2C controller found in Marvell A8K SoCs (and some older SoCs) mux status and baudrate registers into the same address, however, it's a vendor customization, and the original IP core by Mentor Graphics uses two different addresses for the two registers. Use anonymous union in the driver, in order to ease code sharing for other SoC vendors that use this IP core (Allwinner SoCs that are newly introduced to mainline ATF use this core). Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
-
- 04 Sep, 2018 6 commits
-
-
Jun Nie authored
Add USDHC driver to support boot EMMC. Only initialization and single/multiple block read are tested. [bod: fixed checkpatch.pl complaints] [bod: changed name to imx_usdhc for namespace consistency] [bod: squashed antecedent fixes into this one patch] Signed-off-by: Jun Nie <jun.nie@linaro.org> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
-
Bryan O'Donoghue authored
Add missing response type for SWITCH command and STOP_TRANSMISSION so that controller can be configured accordingly. [bod: ported this change from Jun's eMMC patches to the MMC driver] Signed-off-by: Jun Nie <jun.nie@linaro.org> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
-
Bryan O'Donoghue authored
The R3 response type definition should be (1 << 0). Make sure we define the expected response code in the appropriate fashion. Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
-
Jun Nie authored
Add response flag into ID definition so that driver does not need to handle it again. Signed-off-by: Jun Nie <jun.nie@linaro.org> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
-
Jun Nie authored
Add delay timer API so that it can be called by delay timer layer and used as delay timer globally. [bod: changed name from imx_delay_timer -> imx_gpt ] Signed-off-by: Jun Nie <jun.nie@linaro.org> Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
-
John Tsichritzis authored
The Mbed TLS drivers, in order to work, need a heap for internal usage. This heap, instead of being directly referenced by the drivers, now it is being accessed indirectly through a pointer. Also, the heap, instead of being part of the drivers, now it is being received through the plat_get_mbedtls_heap() function. This function requests a heap from the current BL image which utilises the Mbed TLS drivers. Those changes create the opportunity for the Mbed TLS heap to be shared among different images, thus saving memory. A default heap implementation is provided but it can be overridden by a platform specific, optimised implemenetation. Change-Id: I286a1f10097a9cdcbcd312201eea576c18d157fa Signed-off-by: John Tsichritzis <john.tsichritzis@arm.com>
-
- 03 Sep, 2018 2 commits
-
-
Marcin Wojtas authored
It turned out that resetting the RTC time register is not necessary during initial configuration. Safely remove it from the sequence. Change-Id: Id2b9c7db44a8c8dbe88a7f8a21695b72a7fd78ee Signed-off-by: Marcin Wojtas <mw@semihalf.com> Reviewed-by: Nadav Haklai <nadavh@marvell.com> Reviewed-by: Kostya Porotchkin <kostap@marvell.com>
-
Marcin Wojtas authored
This patch introduces new helper routines that allow configuring the individual IRQs to be edge/level-triggered via GICD_ICFGR registers. This is helpful to modify the default configuration of the non-secure GIC SPI's, which are all set during initialization to be level-sensitive. Change-Id: I23deb4a0381691a686a3cda52405aa1dfd5e56f2 Signed-off-by: Marcin Wojtas <mw@semihalf.com> Reviewed-by: Kostya Porotchkin <kostap@marvell.com>
-
- 02 Sep, 2018 4 commits
-
-
Grzegorz Jaszczyk authored
Use PF instead of PP post-fix, since it is referring to "Phase Final" (only G3 related register had correct spelling for relevant bit). Change-Id: Ia5a9c9c78b74b15f7f8adde2c3ef4784c513da2c Signed-off-by: Grzegorz Jaszczyk <jaz@semihalf.com> Reviewed-by: Igal Liberman <igall@marvell.com> Reviewed-by: Kostya Porotchkin <kostap@marvell.com>
-
Grzegorz Jaszczyk authored
The biggest comphy index can be equal to 6 so there is no need to use uint64_t for storing it. Change-Id: I14c2b68e51678a560815963c72aed0c37068f926 Signed-off-by: Grzegorz Jaszczyk <jaz@semihalf.com> Reviewed-by: Igal Liberman <igall@marvell.com> Reviewed-by: Kostya Porotchkin <kostap@marvell.com>
-
Grzegorz Jaszczyk authored
Add simple driver which allows to configure the memory controller trust zones. It is responsible for opening mc trustzone window, with appropriate base address, size and attributes. Example of usage in upcoming commits. Change-Id: I8bea17754d31451b305040ee7de331fb8db0c63f Signed-off-by: Grzegorz Jaszczyk <jaz@semihalf.com> Reviewed-by: Kostya Porotchkin <kostap@marvell.com>
-
Konstantin Porotchkin authored
Rename a8k_common.h to armada_common.h to keep the same header name across all other Marvell Armada platforms. This is especially useful since various Marvell platforms may use common platform files and share the driver modules. Change-Id: I7262105201123d54ccddef9aad4097518f1e38ef Signed-off-by: Konstantin Porotchkin <kostap@marvell.com>
-
- 30 Aug, 2018 9 commits
-
-
Andrew F. Davis authored
Pointers should be comparied to NULL. Fixes: 3fea9c8b ("gic: Fix types") Signed-off-by: Andrew F. Davis <afd@ti.com>
-
Bryan O'Donoghue authored
This patch does two main things - It implements the crash console UART init in assembly, as a hard-coded 115200 8N1 assumed from the 24 MHz clock. If the clock setup code has not run yet, this code can't work but, setting up clocks and clock-gates is way out of scope for this type of recovery function. - It adds code to write a character out of the NXP UART without using any stack-based operations when doing so. - Provides support for crash console in DCE or DTE mode. Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
-
Bryan O'Donoghue authored
- Adds a simple register read/write abstraction to cut-down on the amount of typing and text required to access UART registers in this driver. - Adds a console getc() callback. - Adds a console putc() callback, translating '\n' to '\r' + '\n'. - Initializes the MXC UART, take a crude method of calculating the BAUD rate generator. The UART clock-gates must have been enabled prior to launching the UART init code. Special care needs to be taken to ensure the UBIR is initialized before the UBMR and we need to ensure that UCR2.SRST comes good before trying to program other registers associated with the UART. Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
-
Antonio Nino Diaz authored
Change-Id: Ifdb0ceec19d267b14d796b5d31f08f7342190484 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
-
Antonio Nino Diaz authored
Change-Id: I2954a99d5b72069bcb7bac9d6926c6209d6ba881 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
-
Antonio Nino Diaz authored
Change-Id: I08447b44fffb6e54f9fab957eee369ccbda4247a Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
-
Antonio Nino Diaz authored
Change-Id: I6a2adef87c20f9279446a54b7e69618fba3d2a25 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
-
Antonio Nino Diaz authored
Change-Id: I945029ca26ea2e63f0d92c5f33019b882f23bd72 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
-
Antonio Nino Diaz authored
Change-Id: Ib587f12f36810fc7d4f4b8f575195554299b8ed4 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
-
- 22 Aug, 2018 1 commit
-
-
Antonio Nino Diaz authored
tf_printf and tf_snprintf are now called printf and snprintf, so the code needs to be updated. Change-Id: Iffeee97afcd6328c4c2d30830d4923b964682d71 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
-
- 15 Aug, 2018 1 commit
-
-
Sathees Balya authored
This allows the console drivers to be implemented in C Change-Id: Ibac859c4bcef0e92a0dcacc6b58ac19bc69b8342 Signed-off-by: Sathees Balya <sathees.balya@arm.com>
-
- 13 Aug, 2018 1 commit
-
-
Roberto Vargas authored
The CCI500 TRM explicitily requires completion of the write operation before the read operation, and it is not guaranteed by dmb but it is dsb. Change-Id: Ieeaa0d1a4b8fcb87108dea9b6de03d9c8a150829 Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
-
- 10 Aug, 2018 8 commits
-
-
Antonio Nino Diaz authored
Because of -Werror, this causes a build error. Change-Id: I37a8c4bbfe3f2ced5e17981a2814985919ad483b Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
-
Haojian Zhuang authored
Replace emmc framework by mmc framework. Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
-
Haojian Zhuang authored
Migrate dw_mmc driver from emmc framework to mmc framework. The emmc framework will be abandoned. Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
-
Haojian Zhuang authored
It should set buswidth and speed of mmc controller before accessing mmc. Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
-
Haojian Zhuang authored
DMA is always used in mmc driver. So the buffer address should always follow the DMA limitation. There're same requirement in mmc_read_blocks()/mmc_write_blocks() on parameter buf. Since parameter buf comes from io_block driver, it's already handled in io_block driver. At here, just make the minimum address alignment on 16 chars. Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
-
Haojian Zhuang authored
mmc_read_blocks()/mmc_write_blocks() derived from io_block_ops_t type. It means that lba param should be integer type, not unsigned integer type. Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
-
Haojian Zhuang authored
Sending CMD8 before CMD1 just causes to fetch data failure in eMMC. Check whether it's eMMC first. If it's eMMC, send CMD1 command instead. Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
-
Antonio Nino Diaz authored
Functions provided by stdio.h such as printf and sprintf are available in the codebase, but they add a lot of code to the final image if they are used: - AArch64: ~4KB - AArch32: ~2KB in T32, ~3KB in A32 tf_printf and tf_snprintf are a lot more simple, but it is preferable to use them when possible because they are also used in common code. Change-Id: Id09fd2b486198fe3d79276e2c27931595b7ba60e Acked-by: Haojian Zhuang <haojian.zhuang@linaro.org> Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
-
- 03 Aug, 2018 1 commit
-
-
Roberto Vargas authored
We had exit but we didn't have atexit, and we were calling panic and tf_printf from exit, which generated a dependency from exit to them. Having atexit allows to set a different function pointer in every image. Change-Id: I95b9556d680d96249ed3b14da159b6f417da7661 Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
-