This patch adds ddrc memory controller node in dts.
size mentioned in dts is 0x30000, because we need to access DDR_QOS
INTR registers located at fd090208 from this driver.
Signed-off-by: Naga Sureshkumar Relli <nagasure@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Wed, 16 Mar 2016 16:20:21 +0000 (17:20 +0100)]
ARM64: zynqmp: Read address and size cells from parent
Based on these two rules:
* #address-cells and #size-cells describe the format of addresses
for children of this node, not this node itself. So if you're
looking to parse 'reg' for this node, you *always* need to look at
the parent, not just as a fallback.
* #address-cells and #size-cells are *not* inherited. If they're
missing in a node, then the format for its children's addresses is
2 cell addresses and 2 cell sizes, it is *not* correct to look at
the next parent up for these properties.
fdt_get_reg has to find parent node and read address and size cells from
parent node not from actual node.
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Wendy Liang [Fri, 18 Mar 2016 00:15:15 +0000 (17:15 -0700)]
ARM64: zynqmp: Change the netboot load address
The netboot address to load the FIT image needs to be higher than
the address where the kernel is loaded.
For ZynqMP, kernel is loaded to 0x80000, the netboot
address for the image.ub which is supposed to be
the FIT image needs to be higher. Set it to 10000000.
Signed-off-by: Wendy Liang <jliang@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Soren Brinkmann [Fri, 11 Mar 2016 01:21:51 +0000 (17:21 -0800)]
zynqmp: Switch to 3-component net-boot
For JTAG boot, load Image, DT and ramdisk through tftp and boot.
Also, adjust the image layout in memory a bit to avoid them overlapping:
The old/current layout is:
0x80000 - Image
0x7000000 - DT
And no space for a rootfs.
With this change the layout becomes:
0x80000 - Image
0x4000000 - DT
0x6000000 - rootfs
That provides more than enough space for the kernel without changing the
kernel address everywhere.
Enough room for the DT, which is rather tiny.
And puts the rootfs at the top allowing it to grow.
This seems to be the least intrusive way as it just changes one
variable that is commonly used (fdt_addr), while the addresses
for other components are often repeated and even differ between
boot modes.
Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Wed, 24 Feb 2016 07:45:21 +0000 (08:45 +0100)]
usb: gadget: f_thor: Fix request buffer freeing
This patch fixes origin patch:
"usb: gadget: f_thor: free the allocated out request buffer"
(sha1: f63465733427b7bfbd0fe9c6d8ba3fb90189ad69)
by removing out_req_buf reference and using dev->out_req->buf
directly.
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Since commit
"net: xilinx_axi: Clear Isolate bit if found set suring phy"
(sha1: 39579875c) u-boot fails to build as the temp variable is
never declared. This patch declares the variable in the setup_phy()
function.
Signed-off-by: Alistair Francis <alistair.francis@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Restrict max read length to 16MiB for a single
read command. The max read length would be 32MiB
incase of dual parallel.
This is workaround for read failures if read length
is greater than 16MiB in single and 32MiB in dual
parallel connection.
Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Alistair Francis [Mon, 29 Feb 2016 22:11:13 +0000 (14:11 -0800)]
net: xilinx_axi: Declare missing variable
Since commit
"net: xilinx_axi: Clear Isolate bit if found set suring phy"
(sha1: 39579875c) u-boot fails to build as the ret variable is
never declared. This patch declares the variable in the setup_phy()
function.
Signed-off-by: Alistair Francis <alistair.francis@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Disable internal clock by clearing the internal
clock enable bit. This bit needs to be cleared too
when we stop the SDCLK for changing the frequency
divisor. This bit should be set to zero when the
device is not using the Host controller.
Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Mon, 22 Feb 2016 09:22:31 +0000 (10:22 +0100)]
ARM64: zynqmp: Clear temporary place for storing DDR sizes
tmp is placed in BSS section but BSS section is initialized after
relocation but DDR layout needs to be known before relocation that's
why clear temporary place for DDR sizes.
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Tue, 16 Feb 2016 08:56:01 +0000 (09:56 +0100)]
ARM64: zynqmp: Remove earlyconX helper variables
There is no need to specify earlycon for certain because only earlycon
can be add to bootargs. Linux kernel read information about console from
stdout-path property.
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Tue, 16 Feb 2016 15:05:23 +0000 (16:05 +0100)]
dm: ns16550: Add support for reg-offset property
reg-offset is the part of standard 8250 binding in the kernel.
It is shifting start of address space by reg-offset.
On Xilinx platform this offset is typically 0x1000.
Signed-off-by: Michal Simek <michal.simek@xilinx.com> Tested-by: Sai Pavan Boddu <saipava@xilinx.com> Acked-by: Alistair Francis <alistair.francis@xilinx.com> Tested-by: Alistair Francis <alistair.francis@xilinx.com>
This commit adds functions issuing calls to secure monitor or
hypervisore. This allows using services such as Power State
Coordination Interface (PSCI) provided by firmware, e.g. ARM
Trusted Firmware (ATF)
The SMC call can destroy all registers declared temporary by the
calling conventions. The clobber list is "x0..x17" because of
this
Soren Brinkmann [Mon, 11 Jan 2016 23:34:42 +0000 (15:34 -0800)]
ARM64: zynqmp: DT: Add power domains
Add power-domains to the DT and attach devices to them.
The power-domains are all logical domains as understood by firmware.
Each PD is identified by a unique identifier that the platform firmware
understands.
Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Fri, 27 Nov 2015 12:22:58 +0000 (13:22 +0100)]
ARM64: zynqmp: Add backward compatible string for uart
Mainline kernel has no r1p12 compatible string that's why console stops
to work with the latest DTS files. Append generic compatible string.
Keep in your mind that using this generic compatible string not all uart
features will be available.
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Soren Brinkmann [Mon, 11 Jan 2016 23:34:42 +0000 (15:34 -0800)]
ARM64: zynqmp: DT: Add power domains
Add power-domains to the DT and attach devices to them.
The power-domains are all logical domains as understood by firmware.
Each PD is identified by a unique identifier that the platform firmware
understands.
Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Thu, 4 Feb 2016 12:56:23 +0000 (13:56 +0100)]
ARM64: zynqmp: Add missing compatible property for si5328
Missing compatible string It is causing error in bootlog
i2c i2c-10: of_i2c: modalias failure on
/amba/i2c@ff030000/i2cswitch@74/i2c@4/clock-generator4@69
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
P L Sai Krishna [Thu, 7 Jan 2016 09:27:28 +0000 (14:57 +0530)]
ARM64: zynqmp: Add no-1-8-v property to SD node.
There is no support to switch to 1.8V and use
UHS mode on 1.0 silicon. Hence, this patch add
no-1-8-v property to SD node to denotes 1.8v card
voltage is not supported on this system, even if
the controller claims it is.
Signed-off-by: P L Sai Krishna <lakshmis@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Mon, 8 Feb 2016 08:34:53 +0000 (09:34 +0100)]
ARM64: zynqmp: Read RAM information from DT
Read information about memory from DT. This patch simplify life with
synchronization between DT and board files.
zynqmp-mini-nand, zynqmp-mini-qspi are not converted because they need
specific settings which needs to be tested.
dram_init() only needs maximum RAM size below 4GB that's why please sort
banks in memory node.
dram_init_banksize() copies memory setup to bi_dram[].
This will avoid reading information from DT twice.
Memory test start/end were changed to DDR location to let memtest still
compiled.
Signed-off-by: Michal Simek <michal.simek@xilinx.com>