| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Linux 27c90e5e48d0 ("ARM: dts: am33xx-l4: change #pinctrl-cells from 1 to 2")
changes #pinctrl-cells from 1 to 2. With this we need three values per
pin. the upstream dts files use the AM33XX_PADCONF() macro which handles
this change, but the barebox dts files do not use this, so we have to
add an additional value. This patch is a purely mechanical version, a
more fine grained version would drop the nodes/dts files we duplicated
from upstream.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
|
|
|
|
|
|
|
| |
In get_kernel_addresses(), we add the lower bound check of kernel position.
Kernel address cannot be lower than SDRAM start.
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
dc7f1fce6747 ("sandbox: fix SANDBOX_UNWIND dependency to be KASAN
only") already restricted ARCH_HAS_STACK_DUMP to be dependent
only on AddressSanitizer being available.
This change got lost by an erroneous merge conflict resolution in
39bdcdfb814a ("Merge branch 'for-next/misc' into master"). Fix it up.
Fixes: 39bdcdfb814a ("Merge branch 'for-next/misc' into master")
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Recent commits have modified sandbox for easier support of many common
features:
- block devices
- watchdogs
- reset source
- reboot mode
- barebox state
Enable those in defconfig along with some other useful options.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For testing barebox-state, it would be nice to have a state
pre-configured out-of-the-box. Add one to sandbox.dts.
Because the barebox message on an non-configured state can looks
quite scary, add an init script that tells the user that all
is well.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Add SIGALRM based watchdog driver. This can reset barebox if stuck and
plays nicely with $global.system.reset.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Having a default reboot mode in the device tree allows testing the
functionality out of sandbox without prior setup.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| |
| |
| |
| |
| |
| |
| |
| | |
We can differentiate between POR and RST by explicitly storing RST as
reset reason when we invoke the reset handler. Do so.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Follow-up will extend the poweroff driver to support system reset source.
Set the stage by renaming the driver to power (as it does reset as well)
and make it probe from device tree, so it can point at the system reset
source syscon via phandle.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Now that we can define a hostfile that's persistent over barebox resets,
but does not rely on a hard coded filename, we can have an always-on
environment node.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently, hostfils without a barebox,filename are assigned a new
temporary file on every start.
For use of a hostfile syscon for reboot mode or reset source, we will
need to persist the changes over a regular reset. This can easily be
done by passing through all automatically created temporary file with
an explicit --image option on subsequent runs. Do so.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
So far use of hostfile in the device tree required us to hard code a file
name. If we instead create a temporary file on demand, we can support:
- environment
- barebox-state
- syscon for reset source and reboot mode
out of the box with no dependency on external files.
Do the necessary, so a hostfile device tree node without a
barebox,filename gets a temporary file generated with the appropriate
size.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
801b7cff0210 ("sandbox: hostfile: allow probing from device tree") added
initial support for probing hostfiles out of a non-fixed up device tree.
This was achieved by having the driver probe call linux_open if the device
tree node doesn't contain a valid barebox,fd property. A mmap did not
happen in that case and as such the node couldn't be used as a syscon.
Fix this by unifying the binding for hostfiles added by --image and ones
already in the device tree. Both will result in a device node with just
a barebox,filename property. On pure init level, both kinds of hostfiles
will be iterated through and filenames will be opened and mmaped.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Follow up commits will flesh out the sandbox.dts and make most of what's
in the skeleton.dtsi redundant. Merge the .dtsi with the .dts to have
all the code at one place.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
hf->base may remain uninitialized if an image is > 4G, but sandbox
barebox is compiled for 32-bit. Fix this.
Reported-by: clang-analyzer-10
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The sandbox architecture is device tree only and so far when no --dtb
was passed, it created a basic one itself and used that.
Instead of creating the default device tree in C, just build the dtb
into barebox like we do on other platforms.
When --dtb is specified, that device tree will be used instead.
This results in functional change: Model and hostname are now more
accurate.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The different architectures duplicate some code around unflattening and
registering the device tree. Add common functions to reduce this
duplication.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The i.MX8MQ has a Cortex-M7 Coprocessor. Add a node for controlling it.
To make use of it the board has to provide the reserved memory nodes,
for example:
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
m7_reserved_sysmem1: rproc@40000000 {
reg = <0 0x40000000 0 0x800000>;
no-map;
};
m7_reserved_sysmem2: rproc@40800000 {
reg = <0 0x40800000 0 0x800000>;
no-map;
};
m7_reserved_sysmem3: rproc@80000000 {
reg = <0 0x80000000 0 0x800000>;
no-map;
};
};
&remoteproc_cm7 {
memory-region = <&m7_reserved_sysmem1>, <&m7_reserved_sysmem2>, <&m7_reserved_sysmem3>;
};
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The i.MX8MQ has a Cortex-M4 Coprocessor. Add a node for controlling it.
To make use of it the board has to provide the reserved memory nodes,
for example:
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
m4_reserved: m7@0x40000000 {
no-map;
reg = <0 0x40000000 0 0x1000000>;
};
m4_reserved_sysmem3: rproc@80000000 {
reg = <0 0x80000000 0 0x800000>;
no-map;
};
};
&remoteproc_cm4 {
memory-region = <&m4_reserved>, <&m4_reserved_sysmem3>;
};
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
|\ \ \ |
|
| |\ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The SRC general purpose registers of the i.MX6 keep their values after a
warm reset and are used for communication between the BootROM and upper
level software.
SRC_GPR9 allows software override of SRC_SBMR1, e.g. to boot via
serial download protocol. Define a suitable syscon-reboot-mode
node to use it.
To have SRC_GPR9 take effect, bit 28 in SRC_GPR10 has to be set as well.
To support this, we use the backward-compatible barebox-specific binding
for having multiple 32-bit values for a single mode.
This node will _not_ be fixed up into the kernel device tree due to
the barebox-specific compatible, but as with all reboot mode storage,
the referenced locations will be cleared to the normal (here all-zero)
mode. User software that expects exclusive access to GPR9 while GPR10
bit 28 is zero will be broken.
Rebooting into serial download is now possible via:
barebox@board:/ gpr.reboot_mode.next=serial reset -r imxwd
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This was ported from U-Boot to support st32mp_get_forced_boot_mode(),
which allows board code to customize boot according to values the kernel
places in the reboot mode region on the TAMP syscon.
We no have a syscon-reboot-mode driver, a device node in the
stm32mp151.dtsi, a ${global.system.reboot_mode} variable and a common
reboot_mode_get(), which together achieve the same, but in a generic
manner. Drop the now duplicate code. There has been no in-tree users so
far, so we don't need to touch anything else.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
With the reboot mode infrastructure in place, lets add the first in-tree
user. The STM32MP1 SoCs have general purpose registers in the TAMP
peripheral. Register 20 there is used by the vendor's U-Boot for storing
a forced boot mode. We will use the same location for our reboot mode.
Consistency between barebox and OS is maintained by having barebox fixup
the device tree with the same reboot mode information it used itself, so
we are free to choose our own mode identifiers.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
|\ \ \ \ \ |
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
strerrorp() is only used along with printf. We now have a format
specifier for printing error pointers directly, so use that and
remove strerrorp.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
|\ \ \ \ \ |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Improve coverage by enabling more common code. Users will tweak the
defconfig and cut it down anyway.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
As we now support both the stm32mp157a-dk1 and stm32mp157c-dk2 with
the same barebox image, we should call the board stm32mp15xx-dkx
instead. That's also how the upstream DTSI is named.
Suggested-by: Holger Assmann <has@pengutronix.de>
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Board drivers are now the way to go. Migrate the STM32 boards to use it,
to encourage future copy-pasting in following suit.
As the board now supports both DK2 and DK1, rename the prefix to dkx_.
dk1 specifics follow in a separate commit.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
While register_image_handler can't currently fail, it still returns an
error code. Propagate that error code along instead of having a blanket
return 0. This makes the code a little more compact.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Kconfig and online documentation don't indicate that it's OMAP
specific. Fix this.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The STM32MP157C-DK2 and STM32MP157A-DK1 are basically the same board
except the DK2 has a MIPI-DSI display attached and the SoC has a
crypto block. We can thus use the SoC type to differentiate between
them and just include both device trees at tolerable 12K size increase.
Cc: Holger Assmann <h.assmann@pengutronix.de>
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
There is nothing holding holding us back from reading SoC type in
the PBL. Migrate the necessary definitions to the header to allow
for this.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
ARM device tree is unflattened at core init level and banner with model
extracted from device tree is printed at console init level.
The only init level between is postcore, so board code seeking to
modify the device tree machine model should run then.
On the STM32MP1, we query SoC type at postcore initcall, so we can't
have the board code fixing up the compatible on postcore as well.
Resolve this by moving stm32mp_init to core_initcall. This is allowed
as the code has no dependency that requires it to run postcore.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Super I/O devices on x86 have their base usually located at one of two
I/O ports. They are probed by writing a "passcode" to the I/O port
and then a value is read back.
When COMPILE_TESTing these drivers and running them on sandbox,
this fails with a segfault because all I/O port access lead to
zero page dereference on that architecture. Even without running
barebox, static analyzers correctly flag these accesses as invoking
undefined behavior. Adding a dummy I/O region solves both issues.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
<asm-generic/io.h> is not meant for direct inclusion. It provides
defaults for each arch's <asm/io.h> to fall back to.
Use <asm/io.h> instead.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
On the BeagleBone Black, enable the dts node for the TSC/ADC. Add a
simple configuration that maps all eight channels in order. AIN[0:6]
are exposed on connector P9, while AIN7 measures the 3.3V rail divided
by 2.
Signed-off-by: Trent Piepho <trent.piepho@synapse.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Now that there is a Barebox driver for the ADC, enable the clock to the
TSC/ADC block.
This machine doesn't use common clock framework clocks in Barebox, and
instead enables any clock that might get used. Enalbing the clock could
be made conditional based on enabling the driver, but none of the other
clocks do this.
Signed-off-by: Trent Piepho <trent.piepho@synapse.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
AT91Bootstrap has a CONFIG_MCK_BYPASS option with following help text:
"Use external 8 to 24 Mhz clock signal as source of main clock
instead of an external crystal oscillator.
This option disables the internal driving on the XOUT pin.
The external source has to provide a stable clock on the XIN pin.
If this option is disabled, the SoC expects a crystal oscillator
that needs driving on both XIN and XOUT lines."
When the low level clock setup was ported over from AT91Bootstrap,
this config option was dropped. It wasn't necessary for the xplained
boards that have a crystal, but for ones with an oscillator, it's
required. Add the bit flag back.
Suggested-by: Michael Grzeschik <mgr@pengutronix.de>
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
add a parameter for the assembly version for passing divisor,
and set the default value to DEBUG_LL_UART_ADDR when no parameter
is given.
Now it is possible to recalculate divisor in runtime to keep
the baudrate unchanged. when pll settings changed outside of barebox.
e.g. jtag.
Signed-off-by: duhuanpeng <u74147@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
|\ \ \ \ \
| | |/ / /
| |/| | | |
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
BAREBOX_MAGICVAR now generates a unique identifier automatically,
so we can convert users of BAREBOX_MAGICVAR_NAMED to the simpler
BAREBOX_MAGICVAR macro.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
|\ \ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Add support for the Webasto Common Communication Board Version 2. The
device tree included with barebox can eventually be replaced with the
required barebox changes when the ccbv2 device tree is upstream.
Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: Cem Tenruh <c.tenruh@phytec.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
In some cases we have no UART access, but we still need to get barebox
messages. With ramoops enabled, we still can get barebox message from
running Linux by reading:
cat /sys/fs/pstore/console-ramoops-0
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|