Commit Graph

71 Commits

Author SHA1 Message Date
Zoltan HERPAI
341e312ada generic: groundwork for RISC-V
Add build infrastructure for RISC-V.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
(cherry picked from commit 50c05f6cd7)
2023-06-14 09:22:08 +02:00
Enrico Mioso
57c1f3f9c5
base-files: add eMMC sysupgrade support
Adds generic support for sysupgrading on eMMC-based devices.

Provide function emmc_do_upgrade and emmc_copy_config to be used in
/lib/upgrade/platform.sh instead of redundantly implementing the same
logic over and over again.
Similar to generic sysupgrade on NAND, use environment variables
CI_KERNPART, CI_ROOTPART and newly introduce CI_DATAPART to indicate
GPT partition names to be used. On devices with more than one MMC
block device, CI_ROOTDEV can be used to specify the MMC device for
partition name lookups.

Also allow to select block devices directly using EMMC_KERN_DEV,
EMMC_ROOT_DEV and EMMC_DATA_DEV, as using GPT partition names is not
always an option (e.g. when forced to use MBR).

To easily handle writing kernel and rootfs make use of sysupgrade.tar
format convention which is also already used for generic NAND support.

Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
CC: Li Zhang <li.zhang@gl-inet.com>
CC: TruongSinh Tran-Nguyen <i@truongsinh.pro>
2021-12-02 20:42:58 +00:00
Daniel Golle
98bccdafd7
base-files: rename 'sdcard' to 'legacy-sdcard'
While an image layout based on MBR and 'bootfs' partition may be easy
to understand for users who are very used to the IBM PC and always have
the option to access the SD card outside of the device (and hence don't
really depend on other recovery methods or dual-boot), in my opinion
it's a dead end for many desirable features on embedded systems,
especially when managed remotely (and hence without an easy option to
access the SD card using another device in case things go wrong, for
example).

Let me explain:

* using a MSDOS/VFAT filesystem to store kernel(s) is problematic, as a
  single corruption of the bootfs can render the system into a state
  that it no longer boots at all. This makes dual-boot useless, or at
  least very tedious to setup with then 2 independent boot partitions
  to avoid the single point of failure on a "hot" block (the FAT index
  of the boot partition, written every time a file is changed in
  bootfs). And well: most targets even store the bootloader environment
  in a file in that very same FAT filesystem, hence it cannot be used
  to script a reliable dual-boot method (as loading the environment
  itself will already fail if the filesystem is corrupted).

* loading the kernel uImage from bootfs and using rootfs inside an
  additional partition means the bootloader can only validate the
  kernel -- if rootfs is broken or corrupted, this can lead to a reboot
  loop, which is often a quite costly thing to happen in terms of
  hardware lifetime.

* imitating MBR-boot behavior with a FAT-formatted bootfs partition
  (like IBM PC in the 80s and 90s) is just one of many choices on
  embedded targets. There are much better options with modern U-Boot
  (which is what we use and build from source for all targets booting
  off SD cards), see examples in mediatek/mt7622 and mediatek/mt7623.

Hence rename the 'sdcard' feature to 'legacy-sdcard', and prefix
functions with 'legacy_sdcard_' instead of 'sdcard_'.

Tested-by: Stijn Tintel <stijn@linux-ipv6.be>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-08-16 12:22:17 +01:00
Stijn Tintel
8347d8b4fb base-files: add generic sdcard upgrade method
Add a generic sdcard upgrade method instead of duplicating code in yet
another target, and add a feature flag to only install this upgrade
method in targets that set this flag. Copied from mvebu.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2021-08-07 01:34:40 +03:00
Daniel Golle
6890f6fe13 include/image*: add support for device-tree overlays
Add new target feature 'dt-overlay' which makes DTC keep the symbol
names in the generated dtb.
Make sure additional DT overlay sources specified by the new device
variable DEVICE_DTS_OVERLAY get compiled together with the main DTS
(currently overlays got to be in the same folder). Let Build/fit pass
the generated DT overlay blobs to mkits.sh.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-17 17:45:34 +00:00
Daniel Golle
ebcb4f1d0a
treewide: fix spelling 'seperate' -> 'separate'
This popular spelling mistake was also introduced by myself lately.
Fix it everywhere.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-02-28 23:59:21 +00:00
Daniel Golle
330bd380e8 image: allow building FIT and uImage with ramdisk
Instead of embedding the initrd cpio archive into the kernel, allow
for having an external ramdisk added to the FIT or uImage.
This is useful to overcome kernel size limitations present in many
stock bootloaders, as the ramdisk is then loaded seperately and doesn't
add to the kernel size. Hence we can have larger ramdisks to host ie.
installers with all binaries to flash included (or a web-based
firmware selector).
In terms of performance and total size the differences are neglectible.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-02-24 01:35:20 +00:00
Christian Lamparter
f6fbc39706 build: define PWM_SUPPORT arch feature flag
As the PWM has its own sub-system in the Linux kernel,
I think it should be handled in the same way as GPIO, RTC, PCI...

This patch introduces a specific feature flag "pwm" and the
"leds-pwm" kernel module as the first customer.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2020-09-25 19:32:33 +02:00
Eneas U de Queiroz
ccad1d6817 build: define RTC_SUPPORT as a bool
Currently, RTC_SUPPORT is defined as a tristate, with 'depends on m',
which is supposed to only let it be set to 'm' or 'n'.  However,
scripts/target-metadata.pl will 'select' it, or setting it to 'y', which
defeats it's 'depends on m' restriction.  The users of the symbol are
not expecting it to be necessarily 'm' either, so we can safely use it
as bool.

Newer versions of Linux 'conf' will issue a warning when it detects such
unmet dependencies, and will set it to 'n' instead of 'y', as the
current version does.  In all cases, 'm' is never used.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
2020-04-09 12:51:10 +02:00
Felix Fietkau
85017c40f4 build: add a config option for enabling a testing version of the target kernel
If the target supports a newer kernel version that is not used by default
yet, it can be enabled with this option

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2019-05-11 11:37:10 +02:00
Felix Fietkau
00f030a9c6 build: add support for enabling the rootfs/boot partition size option via target feature
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2018-09-03 12:06:24 +02:00
Florian Larysch
7ea6261b43 config: set ARCH if powerpc64 is selected in the configuration
Signed-off-by: Florian Larysch <fl@n621.de>
2017-10-24 13:24:04 +02:00
Felix Fietkau
5afe9a054c kernel: allow selecting RTC drivers on targets without explicit RTC support
Keep them disabled by default to avoid pulling in extra kernel bloat

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-05-02 14:33:58 +02:00
Matteo Croce
1645abffea kernel: add plan 9 fs package
9pfs is used by kvm to share files between host and guest,
add proper config option to enable it.

Signed-off-by: Matteo Croce <matteo.croce@canonical.com>
2016-08-11 10:45:33 +02:00
Felix Fietkau
11d496d156 target.mk: rework arm architecture level detection
Use kernel config as input instead of -march CFLAGS.
With this change, -march can be dropped and replaced with more specific
optimization flags for better code generation.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-07-15 14:14:37 +02:00
Sergey Sergeev
17ee6bb8f3 tools: add kernel2minor utility for Mikrotik devices
This patch adds support of Mikrotik yaffs2 filesystem image for kernel file
and tools/kernel2minor package.
We neede this to boot kernel through RouterBoot on new Mikrotik NOR flash devices.

Signed-off-by: Sergey Sergeev <adron@yapic.net>
2016-07-05 22:59:14 +02:00
John Crispin
30acacb0af config: add a small_flash feature
this causes KALLSYMS to be off by default

Signed-off-by: John Crispin <john@phrozen.org>
2016-06-13 22:51:43 +02:00
Felix Fietkau
f4c4d501e4 build: remove profile kernel/build system config override support
It has been unused for years

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-05-15 20:55:40 +02:00
Felix Fietkau
8b5d644bb3 toolchain: add support of ARC architecture
This includes binutils, gcc, gdb and uClibc-ng.

Latest release of ARC gcc (as of today it is "arc-2015.06")
is based on upstream gcc 4.8.4.

Sources are available on GitHub, see:
https://github.com/foss-for-synopsys-dwc-arc-processors/gcc

Latest release of ARC binutils (as of today it is "arc-2015.06")
is based on upstream binutils 2.23.

Sources are available on GitHub, see:
https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb/releases/tag/arc-2015.06

Latest release of ARC GDB (as of today this is "arc-2015.06-gdb")
is based on upstream gdb 7.9.1.

Sources are available on GitHub, see:
https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb/releases/tag/arc-2015.06-gdb

Note that for binutils and gdb that come from unified git repository
(which is the case for upstream binutils/gdb today) we need to disable
building of gdb in binutils and binutils in gdb hence in binutils:
------>8------
--disable-sim
--disable-gdb
------>8------

and in gdb:
------>8------
--disable-binutils
--disable-ld
--disable-gas
------>8------

Also in gdb we disable sim because if the following breakage while
building with it:
------------>8------------
/usr/bin/env bash ./../common/genmloop.sh -shell /usr/bin/env bash \
        -mono -fast -pbb -switch sem5-switch.c \
        -cpu a5f -infile ./mloop5.in \
        -outfile-suffix 5
unknown option: bash
Makefile:699: recipe for target 'stamp-5mloop' failed
make[7]: *** [stamp-5mloop] Error 1
------------>8------------

Cc: Felix Fietkau <nbd@openwrt.org>
Cc: John Crispin <blogic@openwrt.org>
Cc: Jonas Gorski <jogo@openwrt.org>
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>

SVN-Revision: 47438
2015-11-10 12:03:59 +00:00
Felix Fietkau
5d9eeab64a build: remove obsolete references to cris and avr32
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 44965
2015-03-24 10:07:40 +00:00
Florian Fainelli
dd8d7188ee aarch64: add initial support
Add initial support for the AArch64 architecture

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 43353
2014-11-24 06:33:13 +00:00
John Crispin
ac5d5cbc79 kernel: add a NAND_SUPPORT symbol
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 41122
2014-06-11 12:59:22 +00:00
Felix Fietkau
b24897ee5c build: add a feature flag for low-memory systems
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 40980
2014-06-02 17:04:38 +00:00
Imre Kaloz
f3e2331e18 add a feature flag for device tree support
Signed-off-by: Imre Kaloz <kaloz@openwrt.org>

SVN-Revision: 38893
2013-11-22 12:01:01 +00:00
Luka Perkov
59eb6137dd build: drop FIT option until we actually need it
Signed-off-by: Luka Perkov <luka@openwrt.org>

SVN-Revision: 38439
2013-10-17 15:45:41 +00:00
Luka Perkov
cc1b164634 build: add menuconfig option for building FIT images
Signed-off-by: Luka Perkov <luka@openwrt.org>

SVN-Revision: 38431
2013-10-16 21:23:24 +00:00
Felix Fietkau
94439c2b5d kernel: add a new global config symbol for enabling rfkill support (can be enabled by default via target feature flag)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 37491
2013-07-21 11:55:30 +00:00
Jonas Gorski
9f7ef8d5f0 target: split jffs2 NAND out of jffs2
Make jffs2_nand a separate option so this can be triggered without forcing
jffs2 images for nor targets.

Adds a new NAND_BLOCKSIZE variable that allows setting the generated layout
in <page_size>:<block_size> pairs.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 36860
2013-06-05 20:58:03 +00:00
Felix Fietkau
eea89fea6a build: add config symbols for different ARM arch levels
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 36620
2013-05-13 15:04:58 +00:00
Felix Fietkau
96bb7c123b build: consistently use 'depends on' instead of 'depends'
make the syntax more compatible with kernel menuconfig

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 36351
2013-04-17 15:36:41 +00:00
Florian Fainelli
348cae15d2 buildroot: factor knowledge of a 64bits architecture
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 36204
2013-04-05 12:36:19 +00:00
Florian Fainelli
9e1d2c15d9 buildroot: allow enabling MIPS16 user-space build
Enabling MIPS16 is made conditional on advertising the "mips16" feature
for a specific target since it requires support from the CPU
(HAS_MIPS16) and the actual use of MIPS16 for building packages
(USE_MIPS16).

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 36202
2013-04-05 12:36:12 +00:00
Florian Fainelli
4a1e2123eb kernel: remove references to TARGET_ubicom32
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 34431
2012-11-30 10:53:51 +00:00
Felix Fietkau
03babf3641 target: add a feature flag for RTC support
SVN-Revision: 31777
2012-05-17 15:28:09 +00:00
Felix Fietkau
8740549c57 mpc85xx: add a new 'spe_fpu' feature flag for the FPU used on freescale powerpc cpus The SPE FPU is ABI-incompatible with the regular powerpc FPU, this needs to be reflected in the toolchain target name. Fixes floating point crashes in user space
SVN-Revision: 25018
2011-01-16 01:25:06 +00:00
Imre Kaloz
4052849677 switch from ext2 to ext4 (w/o) journaling
SVN-Revision: 24084
2010-11-22 12:12:39 +00:00
Felix Fietkau
8d40973058 make the display support feature flag selectable
SVN-Revision: 23791
2010-11-02 16:26:57 +00:00
Imre Kaloz
27a1e6cc6a as we only support 2.6, remove the useless bool for it
SVN-Revision: 23246
2010-10-05 14:19:00 +00:00
Imre Kaloz
7fa8ba095b Toto, we don't support Linux 2.4 anymore..
SVN-Revision: 23245
2010-10-05 14:15:46 +00:00
Michael Büsch
7a8066735d Add usb gadget feature flag
SVN-Revision: 22798
2010-08-25 17:35:34 +00:00
Nicolas Thill
b3b591c000 buildsystem: rename tgz/TGZ "feature" and matching options to targz/TARGZ
SVN-Revision: 21238
2010-04-28 14:47:43 +00:00
Lars-Peter Clausen
900de42186 Add audio feature flag.
There are targets which neither have usb host nor pci support but do have audio
capabilities. Those targets should expliclitly specifiy that they support audio
through the new feature flag. The audio feature flag is also implicitly selected
by the usb and pci feature flags.

SVN-Revision: 19643
2010-02-15 20:03:18 +00:00
Lars-Peter Clausen
db06ca593b Add support for building ubifs images.
SVN-Revision: 19097
2010-01-11 01:10:45 +00:00
Nicolas Thill
4d568a18b1 sort & rearrange arch selection
SVN-Revision: 18904
2009-12-23 10:38:26 +00:00
Nicolas Thill
81be8e3147 Config.in: fix powerpc64 endianness
SVN-Revision: 18828
2009-12-18 16:30:26 +00:00
Felix Fietkau
ec7621ebf9 add nommu target feature flag
SVN-Revision: 17347
2009-08-21 22:32:03 +00:00
Felix Fietkau
aee9d6c31c add a heavily cleaned up version of ubicom32 toolchain support
SVN-Revision: 17346
2009-08-21 22:31:47 +00:00
Geoff Levand
7581681466 powerpc: Create a powerpc64 config feature
The config symbol TARGET_ps3 is used in the build files where
special handling for the 64 bit PowerPC processors is needed.
Introduce a new config feature powerpc64, and replace the use
of TARGET_ps3 with powerpc64.

Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>

SVN-Revision: 17306
2009-08-18 23:07:45 +00:00
Imre Kaloz
2004d4165a add preliminary coldfire v4e support
SVN-Revision: 16538
2009-06-21 18:34:07 +00:00
Imre Kaloz
48cd8188ef missing changes for pcie handling
SVN-Revision: 16294
2009-06-02 09:54:45 +00:00