| 11480b90 | 14-Oct-2018 |
Andre Przywara <andre.przywara@arm.com> |
allwinner: Prepare for executing code on the management processor
The more recent Allwinner SoCs contain an OpenRISC management controller (called arisc or CPUS), which shares the bus with the ARM c
allwinner: Prepare for executing code on the management processor
The more recent Allwinner SoCs contain an OpenRISC management controller (called arisc or CPUS), which shares the bus with the ARM cores, but runs on a separate power domain. This is meant to handle power management with the ARM cores off. There are efforts to run sophisticated firmware on that core (communicating via SCPI with the ARM world), but for now can use it for the rather simple task of helping to turn the ARM cores off. As this cannot be done by ARM code itself (because execution stops at the first of the three required steps), we can offload some instructions to this management processor. This introduces a helper function to hand over a bunch of instructions and triggers execution. We introduce a bakery lock to avoid two cores trying to use that (single) arisc core. The arisc code is expected to put itself into reset after is has finished execution.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| df301601 | 08-Sep-2018 |
Andre Przywara <andre.przywara@arm.com> |
allwinner: Pass FDT address to sunxi_pmic_setup()
For Allwinner boards we now use some heuritistics to find a preloaded .dtb file.
Pass this address on to the PMIC setup routine, so that it can use
allwinner: Pass FDT address to sunxi_pmic_setup()
For Allwinner boards we now use some heuritistics to find a preloaded .dtb file.
Pass this address on to the PMIC setup routine, so that it can use the information contained therein to setup some initial power rails.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| 41538930 | 16-Sep-2018 |
Andre Przywara <andre.przywara@arm.com> |
allwinner: Find DTB in BL33 image
The initial PMIC setup for the Allwinner platform is quite board specific, and used to be guarded by reading the .dtb stub *name* from the SPL image in the legacy A
allwinner: Find DTB in BL33 image
The initial PMIC setup for the Allwinner platform is quite board specific, and used to be guarded by reading the .dtb stub *name* from the SPL image in the legacy ATF port. This doesn't scale particularly well, and requires constant maintainance. Instead having the actual .dtb available would be much better, as the PMIC setup requirements could be read from there directly. The only available BL33 for Allwinner platforms so far is U-Boot, and fortunately U-Boot comes with the full featured .dtb, appended to the end of the U-Boot image.
Introduce some code that scans the beginning of the BL33 image to look for the load address, which is followed by the image size. Adding those two values together gives us the end of the image and thus the .dtb address. Verify that this heuristic is valid by sanitising some values and checking the DTB magic.
Print out the DTB address and the model name, if specified in the root node.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| 7020dca0 | 14-Oct-2018 |
Andre Przywara <andre.przywara@arm.com> |
allwinner: Introduce GPIO helper function
Many boards without a dedicated PMIC contain simple regulators, which can be controlled via GPIO pins.
To later allow turning them off easily, introduce a
allwinner: Introduce GPIO helper function
Many boards without a dedicated PMIC contain simple regulators, which can be controlled via GPIO pins.
To later allow turning them off easily, introduce a simple function to configure a given pin as a GPIO out pin and set it to the desired level.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| 4ec1a239 | 14-Oct-2018 |
Andre Przywara <andre.przywara@arm.com> |
allwinner: Export sunxi_private.h
So far we have a sunxi_private.h header file in the common code directory. This holds the prototypes of various functions we share in *common* code. However we will
allwinner: Export sunxi_private.h
So far we have a sunxi_private.h header file in the common code directory. This holds the prototypes of various functions we share in *common* code. However we will need some of those in the platform specific code parts as well, and want to introduce new functions shared across the whole platform port.
So move the sunxi_private.h file into the common/include directory, so that it becomes visible to all parts of the platform code. Fix up the existing #includes and add missing ones, also add the sunxi_read_soc_id() prototype here.
This will be used in follow up patches.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| 123bcb3f | 16-Sep-2018 |
Andre Przywara <andre.przywara@arm.com> |
allwinner: Introduce names for SoC IDs
We will soon make more use of the Allwinner SoC ID, to differentiate the platform setup. Introduce definitions to avoid dealing with magic numbers and make the
allwinner: Introduce names for SoC IDs
We will soon make more use of the Allwinner SoC ID, to differentiate the platform setup. Introduce definitions to avoid dealing with magic numbers and make the code more readable.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| 43060513 | 11-Oct-2018 |
Andre Przywara <andre.przywara@arm.com> |
allwinner: Disable USE_COHERENT_MEM
According to the documentation, platforms may choose to trade memory footprint for performance (and elegancy) by not providing a separately mapped coherent page.
allwinner: Disable USE_COHERENT_MEM
According to the documentation, platforms may choose to trade memory footprint for performance (and elegancy) by not providing a separately mapped coherent page.
Since a debug build is getting close to the SRAM size limit already, this allows us to save about 3.5KB of BSS and have some room for future enhancements.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|