Additionally to the MLO update handlers also register the update
handlers for the regular barebox image.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
To be able to not only update the MLO in NAND but also the
regular barebox image.
Since this is implemented with help of the corresponding xload
handler this also removes the 'xload' from the Kconfig options
and the filename.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Print the banner with pr_info, but the empty lines before and after
it with printf. This makes the banner show up in the log show up
properly.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
make it possible to call get_time_ns() before the clocksource
has been registered. Just return 0 in this case which is still
better than crashing the system.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
For measuring the startup time it's useful to save the first
timestamp after the clocksource has been registered.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This changes the MUSB support from the original Kernel state to
be usable with barebox. Tested on a custom board and the Beaglebone
Black. The host port on the Beaglebone works, the OTG port works
in device mode, but not yet in host mode.
Based on the initial MUSB port from Rolf Evers Fischer.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This adds the necessary files from the MUSB driver directly from Linux
3.17-rc5. No changes to the original files have been made so far.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
These are necessary for USB support. To make sure they are actually
enabled when a USB capable barebox is started call the clock enable
function during startup also for the full barebox, not only the MLO.
Signed-off-by: Rolf Evers-Fischer <rolf.evers.fischer@delphi.com>
Since the MUSB driver will have it's own directory the Kconfig
entries won't be in drivers/usb/gadget/Kconfig. This is incompatible
with the current 'choice' approach for udc drivers. The udc drivers
do not implement the global usb_gadget_poll() anymore, so we can
drop the choice and allow multiple gadget drivers.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Instead of letting each driver implement usb_gadget_poll directly
implement this function in the core which then calls into the
drivers.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
The AM3xxx can boot images containing a Configuration Header
(generated with omap_signGP) or images with GP Header (simple
size/address information in front of raw image). Update the
SPI NOR barebox update handler to detect the GP Header images.
These have 0x65726162 ('bare') at the offset header[10]. Also
automatically swap the endianess for non swapped images so
that the regular non swapped images can also be flashed.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
We assumed that there is a special image format for SPI. This is not
the case. The AM33xx can boot either images generated with omap_signGP
or raw images which only have the image size and load address in front
of the image. Whether these images are booted from SPI or another
boot medium doesn't matter. The only special thing about SPI is that
the image is in big endian format.
- renames mk-am3xxx-spi-image.c to mk-omap-image.c as the image format
is not only supported by AM3xxx but also by the OMAP SoCs
- removes the option to specify the SoC
- introduces -s to build a big endian image
- detects if an image already is an image generated with omap_signGP
So the behaviour is like this:
raw image -> mk-omap-image -> prepend size/address -> image for SD/MMC
raw image -> mk-omap-image -s -> prepend size/address, big endian swap -> image for SPI
CH image -> mk-omap-image -> nothing, input == output
CH image -> mk-omap-image -s -> big endian swap -> image for SPI
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
The MUSB driver checks for this field. If it doesn't contain
something useful the driver bails out.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
From the i.MX35 user manual :
Since MLC NAND Flash devices do not guarantee error-free boot blocks,
the i.MX35 boot code requires that the first 4 Kbytes of boot code be
duplicated in a subsequent block to serve as a second copy option.
Actually imx-image puts the image at 4k but it seems that the i.MX35
bootrom copies only from 8k as it expects that there is a copy of the
first 0-4k in 4k-8k (and is supposed to use this copy if there is an
ECC error in the first 4k) as we can see in the following lines :
barebox@Eukrea CPUIMX35:/ md -s /dev/nand0 0x0
00000000: ea0003fe eafffffe eafffffe eafffffe ................
00000010: eafffffe eafffffe eafffffe eafffffe ................
00000020: 65726162 00786f62 00000000 00000000
barebox.........
=-> header is @ 0 in flash
barebox@Eukrea CPUIMX35:/ md -s /dev/nand0 0x1000
00001000: 56341200 00000000 0001eda1 00000000 ..4V............
00001010: 00000000 00000000 00000000
00000000 ................
=-> so we have data @ 0x1000 in flash
barebox@Eukrea CPUIMX35:/ md 0x87f00000
87f00000: 00000000 00000000 00000000 00000000 ................
87f00010: 00000000 00000000 00000000
00000000 ................
=-> but we don't find this data in RAM
barebox@Eukrea CPUIMX35:/ md -s /dev/nand0 0x2000
00002000: ea000012 eafffffe eafffffe eafffffe ................
00002010: eafffffe eafffffe eafffffe eafffffe ................
00002020: 65726162 00786f62 00000000 00034272
barebox.....rB..
=-> so we have the image @ 0x2000 in flash
barebox@Eukrea CPUIMX35:/ md 0x87f01000
87f01000: ea000871 eafffffe eafffffe eafffffe q...............
87f01010: eafffffe eafffffe eafffffe eafffffe ................
87f01020: 65726162 00786f62 87f02000 0003b520 barebox.. .. ...
=-> and we find it in RAM
Signed-off-by: Eric Bénard <eric@eukrea.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
As the i2c-at91 driver won't work in the interrupt mode,
so need to poll the interrupts.
Signed-off-by: Bo Shen <voice.shen@atmel.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Set return value correct in error case.
This prevents barebox from crashing in some conditions.
Signed-off-by: Teresa Gámez <t.gamez@phytec.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Add Atmel sama5d4ek board support, which include following features:
- NAND flash support
- SPI flash support
- MMC card support (MCI1)
- LCD display support (with QT1070)
- Ethernet support
Signed-off-by: Bo Shen <voice.shen@atmel.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
If the GEM is used, however only FE featuren enabled, then it can not
support FBLDO configured as 16, and no RGMII/GMII configuratin bit.
So, in order to support GEM only with FE feature enabled, we do:
- using default value for FBLDO.
- using same bit for RMII/MII configuration as GEM for RGMII/GMII.
Signed-off-by: Bo Shen <voice.shen@atmel.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
The CFI size is now printed in a human readable format.
It also adds "0x" prefix to the printed address.
Signed-off-by: Franck Jullien <franck.jullien@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Now that the correct SoC specific memory fixup function is called
we can allow to select multiple SoCs in Kconfig.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
As the sama5d3 is a family member of sama5, so only check sama5
family.
Signed-off-by: Bo Shen <voice.shen@atmel.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
As the PMC base address may be different between each SoC,
so move them to SoC header.
Signed-off-by: Bo Shen <voice.shen@atmel.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Since 93a6c6a808("dts: update to v3.17-rc2") we have a correct gpio
configuration. This results in a double gpio request what receipted in a
error message like this one:
gpiolib: _gpio_request: gpio-25 (phy-reset) status -16
Now with this patch the problem is gone.
Signed-off-by: Silvio Fricke <silvio.fricke@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
ASIX AX88772B started to pack data even more tightly. Packets and the ASIX packet
header may now cross URB boundaries. To handle this we have to introduce
some state between individual calls to asix_rx_fixup().
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
[ Rolf: ported from kernel to barebox 2014.09.0 ]
Signed-off-by: Rolf Evers-Fischer <embedded24@evers-fischer.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Only run the fixup when we are actually on the corresponding
SoC.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
The initialisation of the memory nodes on mvebu is a bit
compilcated:
pure_initcall(mvebu_memory_fixup_register)
of_register_fixup(mvebu_memory_of_fixup, NULL)
core_initcall(kirkwood_init_soc)
mvebu_set_memory()
core_initcall(of_arm_init)
of_fix_tree()
mvebu_memory_of_fixup()
First a mvebu common of_fixup function is registered, then the SoC
calls mvebu_set_memory which stores the memory base and size in global
variables. Afterwards the of_fixup is executed which fixes the memory
nodes according to the global variables.
Instead register a SoC specific fixup which directly calls mvebu_set_memory
with the memory base and size as arguments:
pure_initcall(kirkwood_register_soc_fixup);
of_register_fixup(kirkwood_init_soc, NULL);
core_initcall(of_arm_init)
of_fix_tree()
kirkwood_init_soc()
mvebu_set_memory(phys_base, phys_size);
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Multi-SoC support for MVEBU will add mbus ranges for all compiled
SoCs. To protect the mbus node of the SoC barebox is executed on
from others ranges, pass machine's compatible to mvebu_mbus_add_range
and check before applying the fixup.
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
mvebu has a reset_cpu function per SoC this does not work when multiple
SoCs are selected, so add a common reset_cpu function which calls into
the SoC specific ones.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
The Karo TX6X family consists of different i.MX6Q/DL based System-on-Modules.
Add support for the TX6u 801x modules, that have an i.MX6DL SoC.
Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>