mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-08-15 11:53:53 -09:00
Compare commits
110 Commits
2022.02.11
...
2020.02.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
80e565bbeb | ||
|
|
b48716cda4 | ||
|
|
b9e7a4349a | ||
|
|
1c2319a1d5 | ||
|
|
a279c559b8 | ||
|
|
db8d624958 | ||
|
|
8d9ebbb158 | ||
|
|
333142974b | ||
|
|
1b825bce82 | ||
|
|
ce862d0f14 | ||
|
|
3ec50fbee5 | ||
|
|
9fead6f65e | ||
|
|
4eb7aa1ea7 | ||
|
|
eed4fd569a | ||
|
|
b3136ae1b2 | ||
|
|
b8cb0e2bca | ||
|
|
12776c1587 | ||
|
|
cee522be2c | ||
|
|
c4f5436201 | ||
|
|
f7f95c1759 | ||
|
|
fcfdf366a1 | ||
|
|
9378c2e647 | ||
|
|
9afafc0456 | ||
|
|
e4526a5a24 | ||
|
|
53c0425896 | ||
|
|
f74ae7bdec | ||
|
|
7f92c0475d | ||
|
|
218cd2fa5b | ||
|
|
453352c32a | ||
|
|
a757768497 | ||
|
|
2e2f8c76cd | ||
|
|
95a051f96e | ||
|
|
081c82c00c | ||
|
|
256a070187 | ||
|
|
63a5345796 | ||
|
|
16f4c84991 | ||
|
|
374bc25feb | ||
|
|
7100f8bed2 | ||
|
|
0c381102f0 | ||
|
|
c79987b62e | ||
|
|
8a8ce4e091 | ||
|
|
a824284afc | ||
|
|
f1c89c4bad | ||
|
|
1f8d7588ad | ||
|
|
69af93f511 | ||
|
|
1536f80f4d | ||
|
|
f58cb810c6 | ||
|
|
87ca39ff70 | ||
|
|
6a62d51f7e | ||
|
|
ae0bca61ec | ||
|
|
e11ad9ebae | ||
|
|
73e918edd5 | ||
|
|
ac1cd30fab | ||
|
|
366f19c5db | ||
|
|
0798a93d22 | ||
|
|
2580cf8a2e | ||
|
|
9fbb644a56 | ||
|
|
c51d4232b7 | ||
|
|
6cba3cdfa1 | ||
|
|
7a2767bd39 | ||
|
|
0219439a06 | ||
|
|
56809418f0 | ||
|
|
b3b746a156 | ||
|
|
8f5a610fe8 | ||
|
|
f99603a29e | ||
|
|
c3b2644723 | ||
|
|
312a28cf64 | ||
|
|
b2d69924ff | ||
|
|
9e4f4bfcfb | ||
|
|
40d7bc04e5 | ||
|
|
4762644078 | ||
|
|
6bba85671b | ||
|
|
6a6a7732da | ||
|
|
5b5b681c7d | ||
|
|
bf67e6823f | ||
|
|
f283e56397 | ||
|
|
8c4fc019ee | ||
|
|
958c6986a3 | ||
|
|
0168c3d725 | ||
|
|
b439c1d695 | ||
|
|
d8e8d4c7bf | ||
|
|
ea8b8e5a9b | ||
|
|
8528061765 | ||
|
|
90e6eec1e8 | ||
|
|
7aff262ebe | ||
|
|
ff495fd1a1 | ||
|
|
49dcc6eb09 | ||
|
|
cbac8a048c | ||
|
|
f80fb5bc54 | ||
|
|
79f1c0cd18 | ||
|
|
00f09e30ab | ||
|
|
1455754e50 | ||
|
|
efae6ca603 | ||
|
|
25723bf2e9 | ||
|
|
9860ae2e0f | ||
|
|
e1c91acb50 | ||
|
|
63c6895b4c | ||
|
|
a7d330f95e | ||
|
|
1c2ec3ece2 | ||
|
|
9231ffe10b | ||
|
|
751f657689 | ||
|
|
70d41a3966 | ||
|
|
a17e2522cf | ||
|
|
6c42b08b51 | ||
|
|
9f9b4ca64b | ||
|
|
2d6dc56cd9 | ||
|
|
df35b028ea | ||
|
|
0ab3bcee8c | ||
|
|
2989bcf09d | ||
|
|
9e07a36013 |
567
.clang-format
567
.clang-format
@@ -1,567 +0,0 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# clang-format configuration file. Intended for clang-format >= 4.
|
||||
#
|
||||
# For more information, see:
|
||||
#
|
||||
# Documentation/process/clang-format.rst
|
||||
# https://clang.llvm.org/docs/ClangFormat.html
|
||||
# https://clang.llvm.org/docs/ClangFormatStyleOptions.html
|
||||
#
|
||||
|
||||
# Buildroot: imported from Linux 5.15.6, with minimal modifications.
|
||||
# Please note, this is not enforced at the moment. Intended
|
||||
# as an aid when working with in-tree C files, like
|
||||
# makedevs.c
|
||||
#
|
||||
---
|
||||
AccessModifierOffset: -4
|
||||
AlignAfterOpenBracket: Align
|
||||
AlignConsecutiveAssignments: false
|
||||
AlignConsecutiveDeclarations: false
|
||||
#AlignEscapedNewlines: Left # Unknown to clang-format-4.0
|
||||
AlignOperands: true
|
||||
AlignTrailingComments: false
|
||||
AllowAllParametersOfDeclarationOnNextLine: false
|
||||
AllowShortBlocksOnASingleLine: false
|
||||
AllowShortCaseLabelsOnASingleLine: false
|
||||
AllowShortFunctionsOnASingleLine: None
|
||||
AllowShortIfStatementsOnASingleLine: false
|
||||
AllowShortLoopsOnASingleLine: false
|
||||
AlwaysBreakAfterDefinitionReturnType: None
|
||||
AlwaysBreakAfterReturnType: None
|
||||
AlwaysBreakBeforeMultilineStrings: false
|
||||
AlwaysBreakTemplateDeclarations: false
|
||||
BinPackArguments: true
|
||||
BinPackParameters: true
|
||||
BraceWrapping:
|
||||
AfterClass: false
|
||||
AfterControlStatement: false
|
||||
AfterEnum: false
|
||||
AfterFunction: true
|
||||
AfterNamespace: true
|
||||
AfterObjCDeclaration: false
|
||||
AfterStruct: false
|
||||
AfterUnion: false
|
||||
#AfterExternBlock: false # Unknown to clang-format-5.0
|
||||
BeforeCatch: false
|
||||
BeforeElse: false
|
||||
IndentBraces: false
|
||||
#SplitEmptyFunction: true # Unknown to clang-format-4.0
|
||||
#SplitEmptyRecord: true # Unknown to clang-format-4.0
|
||||
#SplitEmptyNamespace: true # Unknown to clang-format-4.0
|
||||
BreakBeforeBinaryOperators: None
|
||||
BreakBeforeBraces: Custom
|
||||
#BreakBeforeInheritanceComma: false # Unknown to clang-format-4.0
|
||||
BreakBeforeTernaryOperators: false
|
||||
BreakConstructorInitializersBeforeComma: false
|
||||
#BreakConstructorInitializers: BeforeComma # Unknown to clang-format-4.0
|
||||
BreakAfterJavaFieldAnnotations: false
|
||||
BreakStringLiterals: false
|
||||
ColumnLimit: 132 # Specially for Buildroot
|
||||
CommentPragmas: '^ IWYU pragma:'
|
||||
#CompactNamespaces: false # Unknown to clang-format-4.0
|
||||
ConstructorInitializerAllOnOneLineOrOnePerLine: false
|
||||
ConstructorInitializerIndentWidth: 8
|
||||
ContinuationIndentWidth: 8
|
||||
Cpp11BracedListStyle: false
|
||||
DerivePointerAlignment: false
|
||||
DisableFormat: false
|
||||
ExperimentalAutoDetectBinPacking: false
|
||||
#FixNamespaceComments: false # Unknown to clang-format-4.0
|
||||
|
||||
# Taken from:
|
||||
# git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' include/ \
|
||||
# | sed "s,^#define \([^[:space:]]*for_each[^[:space:]]*\)(.*$, - '\1'," \
|
||||
# | sort | uniq
|
||||
ForEachMacros:
|
||||
- 'apei_estatus_for_each_section'
|
||||
- 'ata_for_each_dev'
|
||||
- 'ata_for_each_link'
|
||||
- '__ata_qc_for_each'
|
||||
- 'ata_qc_for_each'
|
||||
- 'ata_qc_for_each_raw'
|
||||
- 'ata_qc_for_each_with_internal'
|
||||
- 'ax25_for_each'
|
||||
- 'ax25_uid_for_each'
|
||||
- '__bio_for_each_bvec'
|
||||
- 'bio_for_each_bvec'
|
||||
- 'bio_for_each_bvec_all'
|
||||
- 'bio_for_each_integrity_vec'
|
||||
- '__bio_for_each_segment'
|
||||
- 'bio_for_each_segment'
|
||||
- 'bio_for_each_segment_all'
|
||||
- 'bio_list_for_each'
|
||||
- 'bip_for_each_vec'
|
||||
- 'bitmap_for_each_clear_region'
|
||||
- 'bitmap_for_each_set_region'
|
||||
- 'blkg_for_each_descendant_post'
|
||||
- 'blkg_for_each_descendant_pre'
|
||||
- 'blk_queue_for_each_rl'
|
||||
- 'bond_for_each_slave'
|
||||
- 'bond_for_each_slave_rcu'
|
||||
- 'bpf_for_each_spilled_reg'
|
||||
- 'btree_for_each_safe128'
|
||||
- 'btree_for_each_safe32'
|
||||
- 'btree_for_each_safe64'
|
||||
- 'btree_for_each_safel'
|
||||
- 'card_for_each_dev'
|
||||
- 'cgroup_taskset_for_each'
|
||||
- 'cgroup_taskset_for_each_leader'
|
||||
- 'cpufreq_for_each_entry'
|
||||
- 'cpufreq_for_each_entry_idx'
|
||||
- 'cpufreq_for_each_valid_entry'
|
||||
- 'cpufreq_for_each_valid_entry_idx'
|
||||
- 'css_for_each_child'
|
||||
- 'css_for_each_descendant_post'
|
||||
- 'css_for_each_descendant_pre'
|
||||
- 'device_for_each_child_node'
|
||||
- 'displayid_iter_for_each'
|
||||
- 'dma_fence_chain_for_each'
|
||||
- 'do_for_each_ftrace_op'
|
||||
- 'drm_atomic_crtc_for_each_plane'
|
||||
- 'drm_atomic_crtc_state_for_each_plane'
|
||||
- 'drm_atomic_crtc_state_for_each_plane_state'
|
||||
- 'drm_atomic_for_each_plane_damage'
|
||||
- 'drm_client_for_each_connector_iter'
|
||||
- 'drm_client_for_each_modeset'
|
||||
- 'drm_connector_for_each_possible_encoder'
|
||||
- 'drm_for_each_bridge_in_chain'
|
||||
- 'drm_for_each_connector_iter'
|
||||
- 'drm_for_each_crtc'
|
||||
- 'drm_for_each_crtc_reverse'
|
||||
- 'drm_for_each_encoder'
|
||||
- 'drm_for_each_encoder_mask'
|
||||
- 'drm_for_each_fb'
|
||||
- 'drm_for_each_legacy_plane'
|
||||
- 'drm_for_each_plane'
|
||||
- 'drm_for_each_plane_mask'
|
||||
- 'drm_for_each_privobj'
|
||||
- 'drm_mm_for_each_hole'
|
||||
- 'drm_mm_for_each_node'
|
||||
- 'drm_mm_for_each_node_in_range'
|
||||
- 'drm_mm_for_each_node_safe'
|
||||
- 'flow_action_for_each'
|
||||
- 'for_each_acpi_dev_match'
|
||||
- 'for_each_active_dev_scope'
|
||||
- 'for_each_active_drhd_unit'
|
||||
- 'for_each_active_iommu'
|
||||
- 'for_each_aggr_pgid'
|
||||
- 'for_each_available_child_of_node'
|
||||
- 'for_each_bio'
|
||||
- 'for_each_board_func_rsrc'
|
||||
- 'for_each_bvec'
|
||||
- 'for_each_card_auxs'
|
||||
- 'for_each_card_auxs_safe'
|
||||
- 'for_each_card_components'
|
||||
- 'for_each_card_dapms'
|
||||
- 'for_each_card_pre_auxs'
|
||||
- 'for_each_card_prelinks'
|
||||
- 'for_each_card_rtds'
|
||||
- 'for_each_card_rtds_safe'
|
||||
- 'for_each_card_widgets'
|
||||
- 'for_each_card_widgets_safe'
|
||||
- 'for_each_cgroup_storage_type'
|
||||
- 'for_each_child_of_node'
|
||||
- 'for_each_clear_bit'
|
||||
- 'for_each_clear_bit_from'
|
||||
- 'for_each_cmsghdr'
|
||||
- 'for_each_compatible_node'
|
||||
- 'for_each_component_dais'
|
||||
- 'for_each_component_dais_safe'
|
||||
- 'for_each_comp_order'
|
||||
- 'for_each_console'
|
||||
- 'for_each_cpu'
|
||||
- 'for_each_cpu_and'
|
||||
- 'for_each_cpu_not'
|
||||
- 'for_each_cpu_wrap'
|
||||
- 'for_each_dapm_widgets'
|
||||
- 'for_each_dev_addr'
|
||||
- 'for_each_dev_scope'
|
||||
- 'for_each_dma_cap_mask'
|
||||
- 'for_each_dpcm_be'
|
||||
- 'for_each_dpcm_be_rollback'
|
||||
- 'for_each_dpcm_be_safe'
|
||||
- 'for_each_dpcm_fe'
|
||||
- 'for_each_drhd_unit'
|
||||
- 'for_each_dss_dev'
|
||||
- 'for_each_dtpm_table'
|
||||
- 'for_each_efi_memory_desc'
|
||||
- 'for_each_efi_memory_desc_in_map'
|
||||
- 'for_each_element'
|
||||
- 'for_each_element_extid'
|
||||
- 'for_each_element_id'
|
||||
- 'for_each_endpoint_of_node'
|
||||
- 'for_each_evictable_lru'
|
||||
- 'for_each_fib6_node_rt_rcu'
|
||||
- 'for_each_fib6_walker_rt'
|
||||
- 'for_each_free_mem_pfn_range_in_zone'
|
||||
- 'for_each_free_mem_pfn_range_in_zone_from'
|
||||
- 'for_each_free_mem_range'
|
||||
- 'for_each_free_mem_range_reverse'
|
||||
- 'for_each_func_rsrc'
|
||||
- 'for_each_hstate'
|
||||
- 'for_each_if'
|
||||
- 'for_each_iommu'
|
||||
- 'for_each_ip_tunnel_rcu'
|
||||
- 'for_each_irq_nr'
|
||||
- 'for_each_link_codecs'
|
||||
- 'for_each_link_cpus'
|
||||
- 'for_each_link_platforms'
|
||||
- 'for_each_lru'
|
||||
- 'for_each_matching_node'
|
||||
- 'for_each_matching_node_and_match'
|
||||
- 'for_each_member'
|
||||
- 'for_each_memcg_cache_index'
|
||||
- 'for_each_mem_pfn_range'
|
||||
- '__for_each_mem_range'
|
||||
- 'for_each_mem_range'
|
||||
- '__for_each_mem_range_rev'
|
||||
- 'for_each_mem_range_rev'
|
||||
- 'for_each_mem_region'
|
||||
- 'for_each_migratetype_order'
|
||||
- 'for_each_msi_entry'
|
||||
- 'for_each_msi_entry_safe'
|
||||
- 'for_each_msi_vector'
|
||||
- 'for_each_net'
|
||||
- 'for_each_net_continue_reverse'
|
||||
- 'for_each_netdev'
|
||||
- 'for_each_netdev_continue'
|
||||
- 'for_each_netdev_continue_rcu'
|
||||
- 'for_each_netdev_continue_reverse'
|
||||
- 'for_each_netdev_feature'
|
||||
- 'for_each_netdev_in_bond_rcu'
|
||||
- 'for_each_netdev_rcu'
|
||||
- 'for_each_netdev_reverse'
|
||||
- 'for_each_netdev_safe'
|
||||
- 'for_each_net_rcu'
|
||||
- 'for_each_new_connector_in_state'
|
||||
- 'for_each_new_crtc_in_state'
|
||||
- 'for_each_new_mst_mgr_in_state'
|
||||
- 'for_each_new_plane_in_state'
|
||||
- 'for_each_new_private_obj_in_state'
|
||||
- 'for_each_node'
|
||||
- 'for_each_node_by_name'
|
||||
- 'for_each_node_by_type'
|
||||
- 'for_each_node_mask'
|
||||
- 'for_each_node_state'
|
||||
- 'for_each_node_with_cpus'
|
||||
- 'for_each_node_with_property'
|
||||
- 'for_each_nonreserved_multicast_dest_pgid'
|
||||
- 'for_each_of_allnodes'
|
||||
- 'for_each_of_allnodes_from'
|
||||
- 'for_each_of_cpu_node'
|
||||
- 'for_each_of_pci_range'
|
||||
- 'for_each_old_connector_in_state'
|
||||
- 'for_each_old_crtc_in_state'
|
||||
- 'for_each_old_mst_mgr_in_state'
|
||||
- 'for_each_oldnew_connector_in_state'
|
||||
- 'for_each_oldnew_crtc_in_state'
|
||||
- 'for_each_oldnew_mst_mgr_in_state'
|
||||
- 'for_each_oldnew_plane_in_state'
|
||||
- 'for_each_oldnew_plane_in_state_reverse'
|
||||
- 'for_each_oldnew_private_obj_in_state'
|
||||
- 'for_each_old_plane_in_state'
|
||||
- 'for_each_old_private_obj_in_state'
|
||||
- 'for_each_online_cpu'
|
||||
- 'for_each_online_node'
|
||||
- 'for_each_online_pgdat'
|
||||
- 'for_each_pci_bridge'
|
||||
- 'for_each_pci_dev'
|
||||
- 'for_each_pci_msi_entry'
|
||||
- 'for_each_pcm_streams'
|
||||
- 'for_each_physmem_range'
|
||||
- 'for_each_populated_zone'
|
||||
- 'for_each_possible_cpu'
|
||||
- 'for_each_present_cpu'
|
||||
- 'for_each_prime_number'
|
||||
- 'for_each_prime_number_from'
|
||||
- 'for_each_process'
|
||||
- 'for_each_process_thread'
|
||||
- 'for_each_prop_codec_conf'
|
||||
- 'for_each_prop_dai_codec'
|
||||
- 'for_each_prop_dai_cpu'
|
||||
- 'for_each_prop_dlc_codecs'
|
||||
- 'for_each_prop_dlc_cpus'
|
||||
- 'for_each_prop_dlc_platforms'
|
||||
- 'for_each_property_of_node'
|
||||
- 'for_each_registered_fb'
|
||||
- 'for_each_requested_gpio'
|
||||
- 'for_each_requested_gpio_in_range'
|
||||
- 'for_each_reserved_mem_range'
|
||||
- 'for_each_reserved_mem_region'
|
||||
- 'for_each_rtd_codec_dais'
|
||||
- 'for_each_rtd_components'
|
||||
- 'for_each_rtd_cpu_dais'
|
||||
- 'for_each_rtd_dais'
|
||||
- 'for_each_set_bit'
|
||||
- 'for_each_set_bit_from'
|
||||
- 'for_each_set_clump8'
|
||||
- 'for_each_sg'
|
||||
- 'for_each_sg_dma_page'
|
||||
- 'for_each_sg_page'
|
||||
- 'for_each_sgtable_dma_page'
|
||||
- 'for_each_sgtable_dma_sg'
|
||||
- 'for_each_sgtable_page'
|
||||
- 'for_each_sgtable_sg'
|
||||
- 'for_each_sibling_event'
|
||||
- 'for_each_subelement'
|
||||
- 'for_each_subelement_extid'
|
||||
- 'for_each_subelement_id'
|
||||
- '__for_each_thread'
|
||||
- 'for_each_thread'
|
||||
- 'for_each_unicast_dest_pgid'
|
||||
- 'for_each_vsi'
|
||||
- 'for_each_wakeup_source'
|
||||
- 'for_each_zone'
|
||||
- 'for_each_zone_zonelist'
|
||||
- 'for_each_zone_zonelist_nodemask'
|
||||
- 'fwnode_for_each_available_child_node'
|
||||
- 'fwnode_for_each_child_node'
|
||||
- 'fwnode_graph_for_each_endpoint'
|
||||
- 'gadget_for_each_ep'
|
||||
- 'genradix_for_each'
|
||||
- 'genradix_for_each_from'
|
||||
- 'hash_for_each'
|
||||
- 'hash_for_each_possible'
|
||||
- 'hash_for_each_possible_rcu'
|
||||
- 'hash_for_each_possible_rcu_notrace'
|
||||
- 'hash_for_each_possible_safe'
|
||||
- 'hash_for_each_rcu'
|
||||
- 'hash_for_each_safe'
|
||||
- 'hctx_for_each_ctx'
|
||||
- 'hlist_bl_for_each_entry'
|
||||
- 'hlist_bl_for_each_entry_rcu'
|
||||
- 'hlist_bl_for_each_entry_safe'
|
||||
- 'hlist_for_each'
|
||||
- 'hlist_for_each_entry'
|
||||
- 'hlist_for_each_entry_continue'
|
||||
- 'hlist_for_each_entry_continue_rcu'
|
||||
- 'hlist_for_each_entry_continue_rcu_bh'
|
||||
- 'hlist_for_each_entry_from'
|
||||
- 'hlist_for_each_entry_from_rcu'
|
||||
- 'hlist_for_each_entry_rcu'
|
||||
- 'hlist_for_each_entry_rcu_bh'
|
||||
- 'hlist_for_each_entry_rcu_notrace'
|
||||
- 'hlist_for_each_entry_safe'
|
||||
- 'hlist_for_each_entry_srcu'
|
||||
- '__hlist_for_each_rcu'
|
||||
- 'hlist_for_each_safe'
|
||||
- 'hlist_nulls_for_each_entry'
|
||||
- 'hlist_nulls_for_each_entry_from'
|
||||
- 'hlist_nulls_for_each_entry_rcu'
|
||||
- 'hlist_nulls_for_each_entry_safe'
|
||||
- 'i3c_bus_for_each_i2cdev'
|
||||
- 'i3c_bus_for_each_i3cdev'
|
||||
- 'ide_host_for_each_port'
|
||||
- 'ide_port_for_each_dev'
|
||||
- 'ide_port_for_each_present_dev'
|
||||
- 'idr_for_each_entry'
|
||||
- 'idr_for_each_entry_continue'
|
||||
- 'idr_for_each_entry_continue_ul'
|
||||
- 'idr_for_each_entry_ul'
|
||||
- 'in_dev_for_each_ifa_rcu'
|
||||
- 'in_dev_for_each_ifa_rtnl'
|
||||
- 'inet_bind_bucket_for_each'
|
||||
- 'inet_lhash2_for_each_icsk_rcu'
|
||||
- 'key_for_each'
|
||||
- 'key_for_each_safe'
|
||||
- 'klp_for_each_func'
|
||||
- 'klp_for_each_func_safe'
|
||||
- 'klp_for_each_func_static'
|
||||
- 'klp_for_each_object'
|
||||
- 'klp_for_each_object_safe'
|
||||
- 'klp_for_each_object_static'
|
||||
- 'kunit_suite_for_each_test_case'
|
||||
- 'kvm_for_each_memslot'
|
||||
- 'kvm_for_each_vcpu'
|
||||
- 'list_for_each'
|
||||
- 'list_for_each_codec'
|
||||
- 'list_for_each_codec_safe'
|
||||
- 'list_for_each_continue'
|
||||
- 'list_for_each_entry'
|
||||
- 'list_for_each_entry_continue'
|
||||
- 'list_for_each_entry_continue_rcu'
|
||||
- 'list_for_each_entry_continue_reverse'
|
||||
- 'list_for_each_entry_from'
|
||||
- 'list_for_each_entry_from_rcu'
|
||||
- 'list_for_each_entry_from_reverse'
|
||||
- 'list_for_each_entry_lockless'
|
||||
- 'list_for_each_entry_rcu'
|
||||
- 'list_for_each_entry_reverse'
|
||||
- 'list_for_each_entry_safe'
|
||||
- 'list_for_each_entry_safe_continue'
|
||||
- 'list_for_each_entry_safe_from'
|
||||
- 'list_for_each_entry_safe_reverse'
|
||||
- 'list_for_each_entry_srcu'
|
||||
- 'list_for_each_prev'
|
||||
- 'list_for_each_prev_safe'
|
||||
- 'list_for_each_safe'
|
||||
- 'llist_for_each'
|
||||
- 'llist_for_each_entry'
|
||||
- 'llist_for_each_entry_safe'
|
||||
- 'llist_for_each_safe'
|
||||
- 'mci_for_each_dimm'
|
||||
- 'media_device_for_each_entity'
|
||||
- 'media_device_for_each_intf'
|
||||
- 'media_device_for_each_link'
|
||||
- 'media_device_for_each_pad'
|
||||
- 'nanddev_io_for_each_page'
|
||||
- 'netdev_for_each_lower_dev'
|
||||
- 'netdev_for_each_lower_private'
|
||||
- 'netdev_for_each_lower_private_rcu'
|
||||
- 'netdev_for_each_mc_addr'
|
||||
- 'netdev_for_each_uc_addr'
|
||||
- 'netdev_for_each_upper_dev_rcu'
|
||||
- 'netdev_hw_addr_list_for_each'
|
||||
- 'nft_rule_for_each_expr'
|
||||
- 'nla_for_each_attr'
|
||||
- 'nla_for_each_nested'
|
||||
- 'nlmsg_for_each_attr'
|
||||
- 'nlmsg_for_each_msg'
|
||||
- 'nr_neigh_for_each'
|
||||
- 'nr_neigh_for_each_safe'
|
||||
- 'nr_node_for_each'
|
||||
- 'nr_node_for_each_safe'
|
||||
- 'of_for_each_phandle'
|
||||
- 'of_property_for_each_string'
|
||||
- 'of_property_for_each_u32'
|
||||
- 'pci_bus_for_each_resource'
|
||||
- 'pcl_for_each_chunk'
|
||||
- 'pcl_for_each_segment'
|
||||
- 'pcm_for_each_format'
|
||||
- 'ping_portaddr_for_each_entry'
|
||||
- 'plist_for_each'
|
||||
- 'plist_for_each_continue'
|
||||
- 'plist_for_each_entry'
|
||||
- 'plist_for_each_entry_continue'
|
||||
- 'plist_for_each_entry_safe'
|
||||
- 'plist_for_each_safe'
|
||||
- 'pnp_for_each_card'
|
||||
- 'pnp_for_each_dev'
|
||||
- 'protocol_for_each_card'
|
||||
- 'protocol_for_each_dev'
|
||||
- 'queue_for_each_hw_ctx'
|
||||
- 'radix_tree_for_each_slot'
|
||||
- 'radix_tree_for_each_tagged'
|
||||
- 'rb_for_each'
|
||||
- 'rbtree_postorder_for_each_entry_safe'
|
||||
- 'rdma_for_each_block'
|
||||
- 'rdma_for_each_port'
|
||||
- 'rdma_umem_for_each_dma_block'
|
||||
- 'resource_list_for_each_entry'
|
||||
- 'resource_list_for_each_entry_safe'
|
||||
- 'rhl_for_each_entry_rcu'
|
||||
- 'rhl_for_each_rcu'
|
||||
- 'rht_for_each'
|
||||
- 'rht_for_each_entry'
|
||||
- 'rht_for_each_entry_from'
|
||||
- 'rht_for_each_entry_rcu'
|
||||
- 'rht_for_each_entry_rcu_from'
|
||||
- 'rht_for_each_entry_safe'
|
||||
- 'rht_for_each_from'
|
||||
- 'rht_for_each_rcu'
|
||||
- 'rht_for_each_rcu_from'
|
||||
- '__rq_for_each_bio'
|
||||
- 'rq_for_each_bvec'
|
||||
- 'rq_for_each_segment'
|
||||
- 'scsi_for_each_prot_sg'
|
||||
- 'scsi_for_each_sg'
|
||||
- 'sctp_for_each_hentry'
|
||||
- 'sctp_skb_for_each'
|
||||
- 'shdma_for_each_chan'
|
||||
- '__shost_for_each_device'
|
||||
- 'shost_for_each_device'
|
||||
- 'sk_for_each'
|
||||
- 'sk_for_each_bound'
|
||||
- 'sk_for_each_entry_offset_rcu'
|
||||
- 'sk_for_each_from'
|
||||
- 'sk_for_each_rcu'
|
||||
- 'sk_for_each_safe'
|
||||
- 'sk_nulls_for_each'
|
||||
- 'sk_nulls_for_each_from'
|
||||
- 'sk_nulls_for_each_rcu'
|
||||
- 'snd_array_for_each'
|
||||
- 'snd_pcm_group_for_each_entry'
|
||||
- 'snd_soc_dapm_widget_for_each_path'
|
||||
- 'snd_soc_dapm_widget_for_each_path_safe'
|
||||
- 'snd_soc_dapm_widget_for_each_sink_path'
|
||||
- 'snd_soc_dapm_widget_for_each_source_path'
|
||||
- 'tb_property_for_each'
|
||||
- 'tcf_exts_for_each_action'
|
||||
- 'udp_portaddr_for_each_entry'
|
||||
- 'udp_portaddr_for_each_entry_rcu'
|
||||
- 'usb_hub_for_each_child'
|
||||
- 'v4l2_device_for_each_subdev'
|
||||
- 'v4l2_m2m_for_each_dst_buf'
|
||||
- 'v4l2_m2m_for_each_dst_buf_safe'
|
||||
- 'v4l2_m2m_for_each_src_buf'
|
||||
- 'v4l2_m2m_for_each_src_buf_safe'
|
||||
- 'virtio_device_for_each_vq'
|
||||
- 'while_for_each_ftrace_op'
|
||||
- 'xa_for_each'
|
||||
- 'xa_for_each_marked'
|
||||
- 'xa_for_each_range'
|
||||
- 'xa_for_each_start'
|
||||
- 'xas_for_each'
|
||||
- 'xas_for_each_conflict'
|
||||
- 'xas_for_each_marked'
|
||||
- 'xbc_array_for_each_value'
|
||||
- 'xbc_for_each_key_value'
|
||||
- 'xbc_node_for_each_array_value'
|
||||
- 'xbc_node_for_each_child'
|
||||
- 'xbc_node_for_each_key_value'
|
||||
- 'zorro_for_each_dev'
|
||||
|
||||
#IncludeBlocks: Preserve # Unknown to clang-format-5.0
|
||||
IncludeCategories:
|
||||
- Regex: '.*'
|
||||
Priority: 1
|
||||
IncludeIsMainRegex: '(Test)?$'
|
||||
IndentCaseLabels: false
|
||||
#IndentPPDirectives: None # Unknown to clang-format-5.0
|
||||
IndentWidth: 8
|
||||
IndentWrappedFunctionNames: false
|
||||
JavaScriptQuotes: Leave
|
||||
JavaScriptWrapImports: true
|
||||
KeepEmptyLinesAtTheStartOfBlocks: false
|
||||
MacroBlockBegin: ''
|
||||
MacroBlockEnd: ''
|
||||
MaxEmptyLinesToKeep: 1
|
||||
NamespaceIndentation: None
|
||||
#ObjCBinPackProtocolList: Auto # Unknown to clang-format-5.0
|
||||
ObjCBlockIndentWidth: 8
|
||||
ObjCSpaceAfterProperty: true
|
||||
ObjCSpaceBeforeProtocolList: true
|
||||
|
||||
# Taken from git's rules
|
||||
#PenaltyBreakAssignment: 10 # Unknown to clang-format-4.0
|
||||
PenaltyBreakBeforeFirstCallParameter: 30
|
||||
PenaltyBreakComment: 10
|
||||
PenaltyBreakFirstLessLess: 0
|
||||
PenaltyBreakString: 10
|
||||
PenaltyExcessCharacter: 100
|
||||
PenaltyReturnTypeOnItsOwnLine: 60
|
||||
|
||||
PointerAlignment: Right
|
||||
ReflowComments: false
|
||||
SortIncludes: false
|
||||
#SortUsingDeclarations: false # Unknown to clang-format-4.0
|
||||
SpaceAfterCStyleCast: false
|
||||
SpaceAfterTemplateKeyword: true
|
||||
SpaceBeforeAssignmentOperators: true
|
||||
#SpaceBeforeCtorInitializerColon: true # Unknown to clang-format-5.0
|
||||
#SpaceBeforeInheritanceColon: true # Unknown to clang-format-5.0
|
||||
SpaceBeforeParens: ControlStatements
|
||||
#SpaceBeforeRangeBasedForLoopColon: true # Unknown to clang-format-5.0
|
||||
SpaceInEmptyParentheses: false
|
||||
SpacesBeforeTrailingComments: 1
|
||||
SpacesInAngles: false
|
||||
SpacesInContainerLiterals: false
|
||||
SpacesInCStyleCastParentheses: false
|
||||
SpacesInParentheses: false
|
||||
SpacesInSquareBrackets: false
|
||||
Standard: Cpp03
|
||||
TabWidth: 8
|
||||
UseTab: Always
|
||||
...
|
||||
2
.flake8
2
.flake8
@@ -2,4 +2,4 @@
|
||||
exclude=
|
||||
# copied from the kernel sources
|
||||
utils/diffconfig
|
||||
max-line-length=132
|
||||
max-line-length=80
|
||||
|
||||
520
.gitlab-ci.yml
520
.gitlab-ci.yml
@@ -1,28 +1,504 @@
|
||||
# Configuration for Gitlab-CI.
|
||||
# Builds appear on https://gitlab.com/buildroot.org/buildroot/pipelines
|
||||
# The .gitlab-ci.yml file is generated from .gitlab-ci.yml.in.
|
||||
# It needs to be regenerated every time a defconfig is added, using
|
||||
# "make .gitlab-ci.yml".
|
||||
|
||||
image: $CI_REGISTRY/buildroot.org/buildroot/base:20220206.1756
|
||||
image: buildroot/base:20191027.2027
|
||||
|
||||
stages:
|
||||
- generate-gitlab-ci
|
||||
- build
|
||||
.check_base:
|
||||
except:
|
||||
- /^.*-.*_defconfig$/
|
||||
- /^.*-tests\..*$/
|
||||
|
||||
generate-gitlab-ci-yml:
|
||||
stage: generate-gitlab-ci
|
||||
script: ./support/scripts/generate-gitlab-ci-yml support/misc/gitlab-ci.yml.in > generated-gitlab-ci.yml
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- generated-gitlab-ci.yml
|
||||
- br-test-pkg/*/.config
|
||||
- br-test-pkg/*/missing.config
|
||||
check-DEVELOPERS:
|
||||
extends: .check_base
|
||||
# get-developers should print just "No action specified"; if it prints
|
||||
# anything else, it's a parse error.
|
||||
# The initial ! is removed by YAML so we need to quote it.
|
||||
script:
|
||||
- "! utils/get-developers | grep -v 'No action specified'"
|
||||
|
||||
buildroot-pipeline:
|
||||
stage: build
|
||||
trigger:
|
||||
include:
|
||||
- artifact: generated-gitlab-ci.yml
|
||||
job: generate-gitlab-ci-yml
|
||||
strategy: depend
|
||||
variables:
|
||||
PARENT_PIPELINE_ID: $CI_PIPELINE_ID
|
||||
check-flake8:
|
||||
extends: .check_base
|
||||
before_script:
|
||||
# Help flake8 to find the Python files without .py extension.
|
||||
- find * -type f -name '*.py' > files.txt
|
||||
- find * -type f -print0 | xargs -0 file | grep 'Python script' | cut -d':' -f1 >> files.txt
|
||||
- sort -u files.txt | tee files.processed
|
||||
script:
|
||||
- python -m flake8 --statistics --count --max-line-length=132 $(cat files.processed)
|
||||
after_script:
|
||||
- wc -l files.processed
|
||||
|
||||
check-gitlab-ci.yml:
|
||||
extends: .check_base
|
||||
script:
|
||||
- mv .gitlab-ci.yml .gitlab-ci.yml.orig
|
||||
- make .gitlab-ci.yml
|
||||
- diff -u .gitlab-ci.yml.orig .gitlab-ci.yml
|
||||
|
||||
check-package:
|
||||
extends: .check_base
|
||||
script:
|
||||
- make check-package
|
||||
|
||||
.defconfig_base:
|
||||
script:
|
||||
- echo "Configure Buildroot for ${DEFCONFIG_NAME}"
|
||||
- make ${DEFCONFIG_NAME}
|
||||
- echo 'Build buildroot'
|
||||
- |
|
||||
make > >(tee build.log |grep '>>>') 2>&1 || {
|
||||
echo 'Failed build last output'
|
||||
tail -200 build.log
|
||||
exit 1
|
||||
}
|
||||
artifacts:
|
||||
when: always
|
||||
expire_in: 2 weeks
|
||||
paths:
|
||||
- .config
|
||||
- build.log
|
||||
- output/images/
|
||||
- output/build/build-time.log
|
||||
- output/build/packages-file-list.txt
|
||||
- output/build/*/.config
|
||||
|
||||
.defconfig:
|
||||
extends: .defconfig_base
|
||||
# Running the defconfigs for every push is too much, so limit to
|
||||
# explicit triggers through the API.
|
||||
only:
|
||||
- triggers
|
||||
- tags
|
||||
- /-defconfigs$/
|
||||
before_script:
|
||||
- DEFCONFIG_NAME=${CI_JOB_NAME}
|
||||
|
||||
one-defconfig:
|
||||
extends: .defconfig_base
|
||||
only:
|
||||
- /^.*-.*_defconfig$/
|
||||
before_script:
|
||||
- DEFCONFIG_NAME=$(echo ${CI_COMMIT_REF_NAME} | sed -e 's,^.*-,,g')
|
||||
|
||||
.runtime_test_base:
|
||||
# Keep build directories so the rootfs can be an artifact of the job. The
|
||||
# runner will clean up those files for us.
|
||||
# Multiply every emulator timeout by 10 to avoid sporadic failures in
|
||||
# elastic runners.
|
||||
script:
|
||||
- echo "Starting runtime test ${TEST_CASE_NAME}"
|
||||
- ./support/testing/run-tests -o test-output/ -d test-dl/ -k --timeout-multiplier 10 ${TEST_CASE_NAME}
|
||||
artifacts:
|
||||
when: always
|
||||
expire_in: 2 weeks
|
||||
paths:
|
||||
- test-output/*.log
|
||||
- test-output/*/.config
|
||||
- test-output/*/images/*
|
||||
|
||||
.runtime_test:
|
||||
extends: .runtime_test_base
|
||||
# Running the runtime tests for every push is too much, so limit to
|
||||
# explicit triggers through the API.
|
||||
only:
|
||||
- triggers
|
||||
- tags
|
||||
- /-runtime-tests$/
|
||||
before_script:
|
||||
- TEST_CASE_NAME=${CI_JOB_NAME}
|
||||
|
||||
one-runtime_test:
|
||||
extends: .runtime_test_base
|
||||
only:
|
||||
- /^.*-tests\..*$/
|
||||
before_script:
|
||||
- TEST_CASE_NAME=$(echo ${CI_COMMIT_REF_NAME} | sed -e 's,^.*-,,g')
|
||||
aarch64_efi_defconfig: { extends: .defconfig }
|
||||
acmesystems_aria_g25_128mb_defconfig: { extends: .defconfig }
|
||||
acmesystems_aria_g25_256mb_defconfig: { extends: .defconfig }
|
||||
acmesystems_arietta_g25_128mb_defconfig: { extends: .defconfig }
|
||||
acmesystems_arietta_g25_256mb_defconfig: { extends: .defconfig }
|
||||
amarula_a64_relic_defconfig: { extends: .defconfig }
|
||||
amarula_vyasa_rk3288_defconfig: { extends: .defconfig }
|
||||
andes_ae3xx_defconfig: { extends: .defconfig }
|
||||
arcturus_ucls1012a_defconfig: { extends: .defconfig }
|
||||
arcturus_ucp1020_defconfig: { extends: .defconfig }
|
||||
arm_foundationv8_defconfig: { extends: .defconfig }
|
||||
arm_juno_defconfig: { extends: .defconfig }
|
||||
armadeus_apf27_defconfig: { extends: .defconfig }
|
||||
armadeus_apf28_defconfig: { extends: .defconfig }
|
||||
armadeus_apf51_defconfig: { extends: .defconfig }
|
||||
asus_tinker_rk3288_defconfig: { extends: .defconfig }
|
||||
at91sam9260eknf_defconfig: { extends: .defconfig }
|
||||
at91sam9g20dfc_defconfig: { extends: .defconfig }
|
||||
at91sam9g45m10ek_defconfig: { extends: .defconfig }
|
||||
at91sam9rlek_defconfig: { extends: .defconfig }
|
||||
at91sam9x5ek_defconfig: { extends: .defconfig }
|
||||
at91sam9x5ek_dev_defconfig: { extends: .defconfig }
|
||||
at91sam9x5ek_mmc_defconfig: { extends: .defconfig }
|
||||
at91sam9x5ek_mmc_dev_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d27_som1_ek_mmc_dev_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d2_xplained_mmc_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d2_xplained_mmc_dev_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d3_xplained_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d3_xplained_dev_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d3_xplained_mmc_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d3_xplained_mmc_dev_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d3xek_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d4_xplained_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d4_xplained_dev_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d4_xplained_mmc_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d4_xplained_mmc_dev_defconfig: { extends: .defconfig }
|
||||
bananapi_m1_defconfig: { extends: .defconfig }
|
||||
bananapi_m2_plus_defconfig: { extends: .defconfig }
|
||||
bananapi_m2_ultra_defconfig: { extends: .defconfig }
|
||||
bananapi_m64_defconfig: { extends: .defconfig }
|
||||
bananapro_defconfig: { extends: .defconfig }
|
||||
beagleboardx15_defconfig: { extends: .defconfig }
|
||||
beaglebone_defconfig: { extends: .defconfig }
|
||||
beaglebone_qt5_defconfig: { extends: .defconfig }
|
||||
beagleboneai_defconfig: { extends: .defconfig }
|
||||
beelink_gs1_defconfig: { extends: .defconfig }
|
||||
chromebook_snow_defconfig: { extends: .defconfig }
|
||||
ci20_defconfig: { extends: .defconfig }
|
||||
csky_gx6605s_defconfig: { extends: .defconfig }
|
||||
cubieboard2_defconfig: { extends: .defconfig }
|
||||
engicam_imx6qdl_icore_defconfig: { extends: .defconfig }
|
||||
engicam_imx6qdl_icore_qt5_defconfig: { extends: .defconfig }
|
||||
engicam_imx6qdl_icore_rqs_defconfig: { extends: .defconfig }
|
||||
engicam_imx6ul_geam_defconfig: { extends: .defconfig }
|
||||
engicam_imx6ul_isiot_defconfig: { extends: .defconfig }
|
||||
freescale_imx28evk_defconfig: { extends: .defconfig }
|
||||
freescale_imx6dlsabreauto_defconfig: { extends: .defconfig }
|
||||
freescale_imx6dlsabresd_defconfig: { extends: .defconfig }
|
||||
freescale_imx6qsabreauto_defconfig: { extends: .defconfig }
|
||||
freescale_imx6qsabresd_defconfig: { extends: .defconfig }
|
||||
freescale_imx6sxsabresd_defconfig: { extends: .defconfig }
|
||||
freescale_imx7dsabresd_defconfig: { extends: .defconfig }
|
||||
freescale_imx8mmevk_defconfig: { extends: .defconfig }
|
||||
freescale_imx8mqevk_defconfig: { extends: .defconfig }
|
||||
freescale_imx8qxpmek_defconfig: { extends: .defconfig }
|
||||
freescale_p1025twr_defconfig: { extends: .defconfig }
|
||||
freescale_t1040d4rdb_defconfig: { extends: .defconfig }
|
||||
freescale_t2080_qds_rdb_defconfig: { extends: .defconfig }
|
||||
friendlyarm_nanopi_a64_defconfig: { extends: .defconfig }
|
||||
friendlyarm_nanopi_neo2_defconfig: { extends: .defconfig }
|
||||
friendlyarm_nanopi_neo_plus2_defconfig: { extends: .defconfig }
|
||||
galileo_defconfig: { extends: .defconfig }
|
||||
grinn_chiliboard_defconfig: { extends: .defconfig }
|
||||
grinn_liteboard_defconfig: { extends: .defconfig }
|
||||
hifive_unleashed_defconfig: { extends: .defconfig }
|
||||
imx23evk_defconfig: { extends: .defconfig }
|
||||
imx6-sabreauto_defconfig: { extends: .defconfig }
|
||||
imx6-sabresd_defconfig: { extends: .defconfig }
|
||||
imx6-sabresd_qt5_defconfig: { extends: .defconfig }
|
||||
imx6slevk_defconfig: { extends: .defconfig }
|
||||
imx6sx-sdb_defconfig: { extends: .defconfig }
|
||||
imx6ulevk_defconfig: { extends: .defconfig }
|
||||
imx6ulpico_defconfig: { extends: .defconfig }
|
||||
imx7d-sdb_defconfig: { extends: .defconfig }
|
||||
imx7dpico_defconfig: { extends: .defconfig }
|
||||
imx8mmpico_defconfig: { extends: .defconfig }
|
||||
imx8mpico_defconfig: { extends: .defconfig }
|
||||
lafrite_defconfig: { extends: .defconfig }
|
||||
lego_ev3_defconfig: { extends: .defconfig }
|
||||
licheepi_zero_defconfig: { extends: .defconfig }
|
||||
linksprite_pcduino_defconfig: { extends: .defconfig }
|
||||
minnowboard_max-graphical_defconfig: { extends: .defconfig }
|
||||
minnowboard_max_defconfig: { extends: .defconfig }
|
||||
mx25pdk_defconfig: { extends: .defconfig }
|
||||
mx51evk_defconfig: { extends: .defconfig }
|
||||
mx53loco_defconfig: { extends: .defconfig }
|
||||
mx6cubox_defconfig: { extends: .defconfig }
|
||||
mx6sx_udoo_neo_defconfig: { extends: .defconfig }
|
||||
mx6udoo_defconfig: { extends: .defconfig }
|
||||
nanopi_m1_defconfig: { extends: .defconfig }
|
||||
nanopi_m1_plus_defconfig: { extends: .defconfig }
|
||||
nanopi_neo_defconfig: { extends: .defconfig }
|
||||
nexbox_a95x_defconfig: { extends: .defconfig }
|
||||
nitrogen6sx_defconfig: { extends: .defconfig }
|
||||
nitrogen6x_defconfig: { extends: .defconfig }
|
||||
nitrogen7_defconfig: { extends: .defconfig }
|
||||
nitrogen8m_defconfig: { extends: .defconfig }
|
||||
odroidxu4_defconfig: { extends: .defconfig }
|
||||
olimex_a10_olinuxino_lime_defconfig: { extends: .defconfig }
|
||||
olimex_a13_olinuxino_defconfig: { extends: .defconfig }
|
||||
olimex_a20_olinuxino_lime2_defconfig: { extends: .defconfig }
|
||||
olimex_a20_olinuxino_lime_defconfig: { extends: .defconfig }
|
||||
olimex_a20_olinuxino_micro_defconfig: { extends: .defconfig }
|
||||
olimex_a33_olinuxino_defconfig: { extends: .defconfig }
|
||||
olimex_a64_olinuxino_defconfig: { extends: .defconfig }
|
||||
olimex_imx233_olinuxino_defconfig: { extends: .defconfig }
|
||||
openblocks_a6_defconfig: { extends: .defconfig }
|
||||
orangepi_lite2_defconfig: { extends: .defconfig }
|
||||
orangepi_lite_defconfig: { extends: .defconfig }
|
||||
orangepi_one_defconfig: { extends: .defconfig }
|
||||
orangepi_one_plus_defconfig: { extends: .defconfig }
|
||||
orangepi_pc2_defconfig: { extends: .defconfig }
|
||||
orangepi_pc_defconfig: { extends: .defconfig }
|
||||
orangepi_pc_plus_defconfig: { extends: .defconfig }
|
||||
orangepi_plus_defconfig: { extends: .defconfig }
|
||||
orangepi_prime_defconfig: { extends: .defconfig }
|
||||
orangepi_r1_defconfig: { extends: .defconfig }
|
||||
orangepi_win_defconfig: { extends: .defconfig }
|
||||
orangepi_zero_defconfig: { extends: .defconfig }
|
||||
orangepi_zero_plus2_defconfig: { extends: .defconfig }
|
||||
pandaboard_defconfig: { extends: .defconfig }
|
||||
pc_x86_64_bios_defconfig: { extends: .defconfig }
|
||||
pc_x86_64_efi_defconfig: { extends: .defconfig }
|
||||
pine64_defconfig: { extends: .defconfig }
|
||||
pine64_sopine_defconfig: { extends: .defconfig }
|
||||
qemu_aarch64_virt_defconfig: { extends: .defconfig }
|
||||
qemu_arm_versatile_defconfig: { extends: .defconfig }
|
||||
qemu_arm_versatile_nommu_defconfig: { extends: .defconfig }
|
||||
qemu_arm_vexpress_defconfig: { extends: .defconfig }
|
||||
qemu_arm_vexpress_tz_defconfig: { extends: .defconfig }
|
||||
qemu_csky610_virt_defconfig: { extends: .defconfig }
|
||||
qemu_csky807_virt_defconfig: { extends: .defconfig }
|
||||
qemu_csky810_virt_defconfig: { extends: .defconfig }
|
||||
qemu_csky860_virt_defconfig: { extends: .defconfig }
|
||||
qemu_m68k_mcf5208_defconfig: { extends: .defconfig }
|
||||
qemu_m68k_q800_defconfig: { extends: .defconfig }
|
||||
qemu_microblazebe_mmu_defconfig: { extends: .defconfig }
|
||||
qemu_microblazeel_mmu_defconfig: { extends: .defconfig }
|
||||
qemu_mips32r2_malta_defconfig: { extends: .defconfig }
|
||||
qemu_mips32r2el_malta_defconfig: { extends: .defconfig }
|
||||
qemu_mips32r6_malta_defconfig: { extends: .defconfig }
|
||||
qemu_mips32r6el_malta_defconfig: { extends: .defconfig }
|
||||
qemu_mips64_malta_defconfig: { extends: .defconfig }
|
||||
qemu_mips64el_malta_defconfig: { extends: .defconfig }
|
||||
qemu_mips64r6_malta_defconfig: { extends: .defconfig }
|
||||
qemu_mips64r6el_malta_defconfig: { extends: .defconfig }
|
||||
qemu_nios2_10m50_defconfig: { extends: .defconfig }
|
||||
qemu_or1k_defconfig: { extends: .defconfig }
|
||||
qemu_ppc64_e5500_defconfig: { extends: .defconfig }
|
||||
qemu_ppc64_pseries_defconfig: { extends: .defconfig }
|
||||
qemu_ppc64le_pseries_defconfig: { extends: .defconfig }
|
||||
qemu_ppc_g3beige_defconfig: { extends: .defconfig }
|
||||
qemu_ppc_mac99_defconfig: { extends: .defconfig }
|
||||
qemu_ppc_mpc8544ds_defconfig: { extends: .defconfig }
|
||||
qemu_ppc_virtex_ml507_defconfig: { extends: .defconfig }
|
||||
qemu_riscv32_virt_defconfig: { extends: .defconfig }
|
||||
qemu_riscv64_virt_defconfig: { extends: .defconfig }
|
||||
qemu_sh4_r2d_defconfig: { extends: .defconfig }
|
||||
qemu_sh4eb_r2d_defconfig: { extends: .defconfig }
|
||||
qemu_sparc64_sun4u_defconfig: { extends: .defconfig }
|
||||
qemu_sparc_ss10_defconfig: { extends: .defconfig }
|
||||
qemu_x86_64_defconfig: { extends: .defconfig }
|
||||
qemu_x86_defconfig: { extends: .defconfig }
|
||||
qemu_xtensa_lx60_defconfig: { extends: .defconfig }
|
||||
qemu_xtensa_lx60_nommu_defconfig: { extends: .defconfig }
|
||||
raspberrypi0_defconfig: { extends: .defconfig }
|
||||
raspberrypi0w_defconfig: { extends: .defconfig }
|
||||
raspberrypi2_defconfig: { extends: .defconfig }
|
||||
raspberrypi3_64_defconfig: { extends: .defconfig }
|
||||
raspberrypi3_defconfig: { extends: .defconfig }
|
||||
raspberrypi3_qt5we_defconfig: { extends: .defconfig }
|
||||
raspberrypi4_64_defconfig: { extends: .defconfig }
|
||||
raspberrypi4_defconfig: { extends: .defconfig }
|
||||
raspberrypi_defconfig: { extends: .defconfig }
|
||||
riotboard_defconfig: { extends: .defconfig }
|
||||
rock64_defconfig: { extends: .defconfig }
|
||||
roseapplepi_defconfig: { extends: .defconfig }
|
||||
s6lx9_microboard_defconfig: { extends: .defconfig }
|
||||
sheevaplug_defconfig: { extends: .defconfig }
|
||||
snps_aarch64_vdk_defconfig: { extends: .defconfig }
|
||||
snps_arc700_axs101_defconfig: { extends: .defconfig }
|
||||
snps_archs38_axs103_defconfig: { extends: .defconfig }
|
||||
snps_archs38_haps_defconfig: { extends: .defconfig }
|
||||
snps_archs38_hsdk_defconfig: { extends: .defconfig }
|
||||
snps_archs38_vdk_defconfig: { extends: .defconfig }
|
||||
socrates_cyclone5_defconfig: { extends: .defconfig }
|
||||
solidrun_clearfog_defconfig: { extends: .defconfig }
|
||||
solidrun_clearfog_gt_8k_defconfig: { extends: .defconfig }
|
||||
solidrun_macchiatobin_mainline_defconfig: { extends: .defconfig }
|
||||
solidrun_macchiatobin_marvell_defconfig: { extends: .defconfig }
|
||||
stm32f429_disco_defconfig: { extends: .defconfig }
|
||||
stm32f469_disco_defconfig: { extends: .defconfig }
|
||||
stm32mp157c_dk2_defconfig: { extends: .defconfig }
|
||||
toradex_apalis_imx6_defconfig: { extends: .defconfig }
|
||||
ts4900_defconfig: { extends: .defconfig }
|
||||
ts5500_defconfig: { extends: .defconfig }
|
||||
ts7680_defconfig: { extends: .defconfig }
|
||||
wandboard_defconfig: { extends: .defconfig }
|
||||
warp7_defconfig: { extends: .defconfig }
|
||||
warpboard_defconfig: { extends: .defconfig }
|
||||
zynq_microzed_defconfig: { extends: .defconfig }
|
||||
zynq_zc706_defconfig: { extends: .defconfig }
|
||||
zynq_zed_defconfig: { extends: .defconfig }
|
||||
zynqmp_zcu106_defconfig: { extends: .defconfig }
|
||||
tests.boot.test_atf.TestATFAllwinner: { extends: .runtime_test }
|
||||
tests.boot.test_atf.TestATFMarvell: { extends: .runtime_test }
|
||||
tests.boot.test_atf.TestATFVexpress: { extends: .runtime_test }
|
||||
tests.core.test_file_capabilities.TestFileCapabilities: { extends: .runtime_test }
|
||||
tests.core.test_hardening.TestFortifyConserv: { extends: .runtime_test }
|
||||
tests.core.test_hardening.TestFortifyNone: { extends: .runtime_test }
|
||||
tests.core.test_hardening.TestRelro: { extends: .runtime_test }
|
||||
tests.core.test_hardening.TestRelroPartial: { extends: .runtime_test }
|
||||
tests.core.test_hardening.TestSspNone: { extends: .runtime_test }
|
||||
tests.core.test_hardening.TestSspStrong: { extends: .runtime_test }
|
||||
tests.core.test_post_scripts.TestPostScripts: { extends: .runtime_test }
|
||||
tests.core.test_root_password.TestRootPassword: { extends: .runtime_test }
|
||||
tests.core.test_rootfs_overlay.TestRootfsOverlay: { extends: .runtime_test }
|
||||
tests.core.test_timezone.TestGlibcAllTimezone: { extends: .runtime_test }
|
||||
tests.core.test_timezone.TestGlibcNonDefaultLimitedTimezone: { extends: .runtime_test }
|
||||
tests.core.test_timezone.TestNoTimezone: { extends: .runtime_test }
|
||||
tests.download.test_git.TestGitHash: { extends: .runtime_test }
|
||||
tests.download.test_git.TestGitRefs: { extends: .runtime_test }
|
||||
tests.fs.test_ext.TestExt2: { extends: .runtime_test }
|
||||
tests.fs.test_ext.TestExt2r1: { extends: .runtime_test }
|
||||
tests.fs.test_ext.TestExt3: { extends: .runtime_test }
|
||||
tests.fs.test_ext.TestExt4: { extends: .runtime_test }
|
||||
tests.fs.test_f2fs.TestF2FS: { extends: .runtime_test }
|
||||
tests.fs.test_iso9660.TestIso9660Grub2External: { extends: .runtime_test }
|
||||
tests.fs.test_iso9660.TestIso9660Grub2ExternalCompress: { extends: .runtime_test }
|
||||
tests.fs.test_iso9660.TestIso9660Grub2Internal: { extends: .runtime_test }
|
||||
tests.fs.test_iso9660.TestIso9660SyslinuxExternal: { extends: .runtime_test }
|
||||
tests.fs.test_iso9660.TestIso9660SyslinuxExternalCompress: { extends: .runtime_test }
|
||||
tests.fs.test_iso9660.TestIso9660SyslinuxInternal: { extends: .runtime_test }
|
||||
tests.fs.test_jffs2.TestJffs2: { extends: .runtime_test }
|
||||
tests.fs.test_squashfs.TestSquashfs: { extends: .runtime_test }
|
||||
tests.fs.test_ubi.TestUbi: { extends: .runtime_test }
|
||||
tests.fs.test_yaffs2.TestYaffs2: { extends: .runtime_test }
|
||||
tests.init.test_busybox.TestInitSystemBusyboxRo: { extends: .runtime_test }
|
||||
tests.init.test_busybox.TestInitSystemBusyboxRoNet: { extends: .runtime_test }
|
||||
tests.init.test_busybox.TestInitSystemBusyboxRw: { extends: .runtime_test }
|
||||
tests.init.test_busybox.TestInitSystemBusyboxRwNet: { extends: .runtime_test }
|
||||
tests.init.test_none.TestInitSystemNone: { extends: .runtime_test }
|
||||
tests.init.test_systemd.TestInitSystemSystemdRoFull: { extends: .runtime_test }
|
||||
tests.init.test_systemd.TestInitSystemSystemdRoIfupdown: { extends: .runtime_test }
|
||||
tests.init.test_systemd.TestInitSystemSystemdRoNetworkd: { extends: .runtime_test }
|
||||
tests.init.test_systemd.TestInitSystemSystemdRwFull: { extends: .runtime_test }
|
||||
tests.init.test_systemd.TestInitSystemSystemdRwIfupdown: { extends: .runtime_test }
|
||||
tests.init.test_systemd.TestInitSystemSystemdRwNetworkd: { extends: .runtime_test }
|
||||
tests.package.test_atop.TestAtop: { extends: .runtime_test }
|
||||
tests.package.test_crudini.TestCrudiniPy2: { extends: .runtime_test }
|
||||
tests.package.test_crudini.TestCrudiniPy3: { extends: .runtime_test }
|
||||
tests.package.test_docker_compose.TestDockerCompose: { extends: .runtime_test }
|
||||
tests.package.test_dropbear.TestDropbear: { extends: .runtime_test }
|
||||
tests.package.test_glxinfo.TestGlxinfo: { extends: .runtime_test }
|
||||
tests.package.test_ipython.TestIPythonPy3: { extends: .runtime_test }
|
||||
tests.package.test_libftdi1.TestPythonPy2Libftdi1: { extends: .runtime_test }
|
||||
tests.package.test_libftdi1.TestPythonPy3Libftdi1: { extends: .runtime_test }
|
||||
tests.package.test_lpeg.TestLuaLPeg: { extends: .runtime_test }
|
||||
tests.package.test_lpeg.TestLuajitLPeg: { extends: .runtime_test }
|
||||
tests.package.test_lsqlite3.TestLuaLsqlite3: { extends: .runtime_test }
|
||||
tests.package.test_lsqlite3.TestLuajitLsqlite3: { extends: .runtime_test }
|
||||
tests.package.test_lua.TestLua: { extends: .runtime_test }
|
||||
tests.package.test_lua.TestLuajit: { extends: .runtime_test }
|
||||
tests.package.test_lua_cqueues.TestLuaLuaCqueues: { extends: .runtime_test }
|
||||
tests.package.test_lua_cqueues.TestLuajitLuaCqueues: { extends: .runtime_test }
|
||||
tests.package.test_lua_curl.TestLuaLuacURL: { extends: .runtime_test }
|
||||
tests.package.test_lua_curl.TestLuajitLuacURL: { extends: .runtime_test }
|
||||
tests.package.test_lua_gd.TestLuaLuaGD: { extends: .runtime_test }
|
||||
tests.package.test_lua_gd.TestLuajitLuaGD: { extends: .runtime_test }
|
||||
tests.package.test_lua_http.TestLuaHttp: { extends: .runtime_test }
|
||||
tests.package.test_lua_http.TestLuajitHttp: { extends: .runtime_test }
|
||||
tests.package.test_lua_sdl2.TestLuaLuaSDL2: { extends: .runtime_test }
|
||||
tests.package.test_lua_sdl2.TestLuajitLuaSDL2: { extends: .runtime_test }
|
||||
tests.package.test_lua_utf8.TestLuaUtf8: { extends: .runtime_test }
|
||||
tests.package.test_lua_utf8.TestLuajitUtf8: { extends: .runtime_test }
|
||||
tests.package.test_luaexpat.TestLuaLuaExpat: { extends: .runtime_test }
|
||||
tests.package.test_luaexpat.TestLuajitLuaExpat: { extends: .runtime_test }
|
||||
tests.package.test_luafilesystem.TestLuaLuaFileSystem: { extends: .runtime_test }
|
||||
tests.package.test_luafilesystem.TestLuajitLuaFileSystem: { extends: .runtime_test }
|
||||
tests.package.test_luaossl.TestLuaLuaossl: { extends: .runtime_test }
|
||||
tests.package.test_luaossl.TestLuajitLuaossl: { extends: .runtime_test }
|
||||
tests.package.test_luaposix.TestLuaLuaPosix: { extends: .runtime_test }
|
||||
tests.package.test_luaposix.TestLuajitLuaPosix: { extends: .runtime_test }
|
||||
tests.package.test_luasec.TestLuaLuaSec: { extends: .runtime_test }
|
||||
tests.package.test_luasec.TestLuajitLuaSec: { extends: .runtime_test }
|
||||
tests.package.test_luasocket.TestLuaLuaSocket: { extends: .runtime_test }
|
||||
tests.package.test_luasocket.TestLuajitLuaSocket: { extends: .runtime_test }
|
||||
tests.package.test_luasyslog.TestLuaLuasyslog: { extends: .runtime_test }
|
||||
tests.package.test_luasyslog.TestLuajitLuasyslog: { extends: .runtime_test }
|
||||
tests.package.test_luvi.TestLuvi: { extends: .runtime_test }
|
||||
tests.package.test_lxc.TestLxc: { extends: .runtime_test }
|
||||
tests.package.test_lzlib.TestLuaLzlib: { extends: .runtime_test }
|
||||
tests.package.test_openjdk.TestOpenJdk: { extends: .runtime_test }
|
||||
tests.package.test_opkg.TestOpkg: { extends: .runtime_test }
|
||||
tests.package.test_perl.TestPerl: { extends: .runtime_test }
|
||||
tests.package.test_perl_class_load.TestPerlClassLoad: { extends: .runtime_test }
|
||||
tests.package.test_perl_dbd_mysql.TestPerlDBDmysql: { extends: .runtime_test }
|
||||
tests.package.test_perl_encode_detect.TestPerlEncodeDetect: { extends: .runtime_test }
|
||||
tests.package.test_perl_gdgraph.TestPerlGDGraph: { extends: .runtime_test }
|
||||
tests.package.test_perl_io_socket_multicast.TestPerlIOSocketMulticast: { extends: .runtime_test }
|
||||
tests.package.test_perl_io_socket_ssl.TestPerlIOSocketSSL: { extends: .runtime_test }
|
||||
tests.package.test_perl_libwww_perl.TestPerllibwwwperl: { extends: .runtime_test }
|
||||
tests.package.test_perl_mail_dkim.TestPerlMailDKIM: { extends: .runtime_test }
|
||||
tests.package.test_perl_x10.TestPerlX10: { extends: .runtime_test }
|
||||
tests.package.test_perl_xml_libxml.TestPerlXMLLibXML: { extends: .runtime_test }
|
||||
tests.package.test_prosody.TestProsodyLua51: { extends: .runtime_test }
|
||||
tests.package.test_prosody.TestProsodyLuajit: { extends: .runtime_test }
|
||||
tests.package.test_python.TestPython2: { extends: .runtime_test }
|
||||
tests.package.test_python.TestPython3: { extends: .runtime_test }
|
||||
tests.package.test_python_argh.TestPythonPy2Argh: { extends: .runtime_test }
|
||||
tests.package.test_python_argh.TestPythonPy3Argh: { extends: .runtime_test }
|
||||
tests.package.test_python_attrs.TestPythonPy2Attrs: { extends: .runtime_test }
|
||||
tests.package.test_python_attrs.TestPythonPy3Attrs: { extends: .runtime_test }
|
||||
tests.package.test_python_autobahn.TestPythonPy2Autobahn: { extends: .runtime_test }
|
||||
tests.package.test_python_autobahn.TestPythonPy3Autobahn: { extends: .runtime_test }
|
||||
tests.package.test_python_automat.TestPythonPy2Automat: { extends: .runtime_test }
|
||||
tests.package.test_python_automat.TestPythonPy3Automat: { extends: .runtime_test }
|
||||
tests.package.test_python_avro.TestPythonAvro: { extends: .runtime_test }
|
||||
tests.package.test_python_bitstring.TestPythonPy2Bitstring: { extends: .runtime_test }
|
||||
tests.package.test_python_bitstring.TestPythonPy3Bitstring: { extends: .runtime_test }
|
||||
tests.package.test_python_can.TestPythonPy2Can: { extends: .runtime_test }
|
||||
tests.package.test_python_can.TestPythonPy3Can: { extends: .runtime_test }
|
||||
tests.package.test_python_cbor.TestPythonPy2Cbor: { extends: .runtime_test }
|
||||
tests.package.test_python_cbor.TestPythonPy3Cbor: { extends: .runtime_test }
|
||||
tests.package.test_python_click.TestPythonPy2Click: { extends: .runtime_test }
|
||||
tests.package.test_python_click.TestPythonPy3Click: { extends: .runtime_test }
|
||||
tests.package.test_python_constantly.TestPythonPy2Constantly: { extends: .runtime_test }
|
||||
tests.package.test_python_constantly.TestPythonPy3Constantly: { extends: .runtime_test }
|
||||
tests.package.test_python_crossbar.TestPythonPy3Crossbar: { extends: .runtime_test }
|
||||
tests.package.test_python_cryptography.TestPythonPy2Cryptography: { extends: .runtime_test }
|
||||
tests.package.test_python_cryptography.TestPythonPy3Cryptography: { extends: .runtime_test }
|
||||
tests.package.test_python_django.TestPythonPy3Django: { extends: .runtime_test }
|
||||
tests.package.test_python_gitdb2.TestPythonPy2Gitdb2: { extends: .runtime_test }
|
||||
tests.package.test_python_gitdb2.TestPythonPy3Gitdb2: { extends: .runtime_test }
|
||||
tests.package.test_python_gobject.TestPythonPy2Gobject: { extends: .runtime_test }
|
||||
tests.package.test_python_incremental.TestPythonPy2Incremental: { extends: .runtime_test }
|
||||
tests.package.test_python_incremental.TestPythonPy3Incremental: { extends: .runtime_test }
|
||||
tests.package.test_python_passlib.TestPythonPy2Passlib: { extends: .runtime_test }
|
||||
tests.package.test_python_passlib.TestPythonPy3Passlib: { extends: .runtime_test }
|
||||
tests.package.test_python_pexpect.TestPythonPy2Pexpect: { extends: .runtime_test }
|
||||
tests.package.test_python_pexpect.TestPythonPy3Pexpect: { extends: .runtime_test }
|
||||
tests.package.test_python_pynacl.TestPythonPy2Pynacl: { extends: .runtime_test }
|
||||
tests.package.test_python_pynacl.TestPythonPy3Pynacl: { extends: .runtime_test }
|
||||
tests.package.test_python_pyyaml.TestPythonPy2Pyyaml: { extends: .runtime_test }
|
||||
tests.package.test_python_pyyaml.TestPythonPy3Pyyaml: { extends: .runtime_test }
|
||||
tests.package.test_python_service_identity.TestPythonPy2ServiceIdentity: { extends: .runtime_test }
|
||||
tests.package.test_python_service_identity.TestPythonPy3ServiceIdentity: { extends: .runtime_test }
|
||||
tests.package.test_python_smmap2.TestPythonPy2Smmap2: { extends: .runtime_test }
|
||||
tests.package.test_python_smmap2.TestPythonPy3Smmap2: { extends: .runtime_test }
|
||||
tests.package.test_python_subprocess32.TestPythonPy2Subprocess32: { extends: .runtime_test }
|
||||
tests.package.test_python_treq.TestPythonPy2Treq: { extends: .runtime_test }
|
||||
tests.package.test_python_treq.TestPythonPy3Treq: { extends: .runtime_test }
|
||||
tests.package.test_python_twisted.TestPythonPy2Twisted: { extends: .runtime_test }
|
||||
tests.package.test_python_twisted.TestPythonPy3Twisted: { extends: .runtime_test }
|
||||
tests.package.test_python_txaio.TestPythonPy2Txaio: { extends: .runtime_test }
|
||||
tests.package.test_python_txaio.TestPythonPy3Txaio: { extends: .runtime_test }
|
||||
tests.package.test_python_txtorcon.TestPythonPy2Txtorcon: { extends: .runtime_test }
|
||||
tests.package.test_python_txtorcon.TestPythonPy3Txtorcon: { extends: .runtime_test }
|
||||
tests.package.test_python_ubjson.TestPythonPy2Ubjson: { extends: .runtime_test }
|
||||
tests.package.test_python_ubjson.TestPythonPy3Ubjson: { extends: .runtime_test }
|
||||
tests.package.test_rings.TestLuaRings: { extends: .runtime_test }
|
||||
tests.package.test_rings.TestLuajitRings: { extends: .runtime_test }
|
||||
tests.package.test_rust.TestRust: { extends: .runtime_test }
|
||||
tests.package.test_rust.TestRustBin: { extends: .runtime_test }
|
||||
tests.package.test_syslog_ng.TestSyslogNg: { extends: .runtime_test }
|
||||
tests.package.test_tmux.TestTmux: { extends: .runtime_test }
|
||||
tests.package.test_turbolua.TestLuajitTurbolua: { extends: .runtime_test }
|
||||
tests.toolchain.test_external.TestExternalToolchainBuildrootMusl: { extends: .runtime_test }
|
||||
tests.toolchain.test_external.TestExternalToolchainBuildrootuClibc: { extends: .runtime_test }
|
||||
tests.toolchain.test_external.TestExternalToolchainCCache: { extends: .runtime_test }
|
||||
tests.toolchain.test_external.TestExternalToolchainCtngMusl: { extends: .runtime_test }
|
||||
tests.toolchain.test_external.TestExternalToolchainLinaroArm: { extends: .runtime_test }
|
||||
tests.toolchain.test_external.TestExternalToolchainSourceryArmv4: { extends: .runtime_test }
|
||||
tests.toolchain.test_external.TestExternalToolchainSourceryArmv5: { extends: .runtime_test }
|
||||
tests.toolchain.test_external.TestExternalToolchainSourceryArmv7: { extends: .runtime_test }
|
||||
tests.utils.test_check_package.TestCheckPackage: { extends: .runtime_test }
|
||||
|
||||
118
.gitlab-ci.yml.in
Normal file
118
.gitlab-ci.yml.in
Normal file
@@ -0,0 +1,118 @@
|
||||
# Configuration for Gitlab-CI.
|
||||
# Builds appear on https://gitlab.com/buildroot.org/buildroot/pipelines
|
||||
# The .gitlab-ci.yml file is generated from .gitlab-ci.yml.in.
|
||||
# It needs to be regenerated every time a defconfig is added, using
|
||||
# "make .gitlab-ci.yml".
|
||||
|
||||
image: buildroot/base:20191027.2027
|
||||
|
||||
.check_base:
|
||||
except:
|
||||
- /^.*-.*_defconfig$/
|
||||
- /^.*-tests\..*$/
|
||||
|
||||
check-DEVELOPERS:
|
||||
extends: .check_base
|
||||
# get-developers should print just "No action specified"; if it prints
|
||||
# anything else, it's a parse error.
|
||||
# The initial ! is removed by YAML so we need to quote it.
|
||||
script:
|
||||
- "! utils/get-developers | grep -v 'No action specified'"
|
||||
|
||||
check-flake8:
|
||||
extends: .check_base
|
||||
before_script:
|
||||
# Help flake8 to find the Python files without .py extension.
|
||||
- find * -type f -name '*.py' > files.txt
|
||||
- find * -type f -print0 | xargs -0 file | grep 'Python script' | cut -d':' -f1 >> files.txt
|
||||
- sort -u files.txt | tee files.processed
|
||||
script:
|
||||
- python -m flake8 --statistics --count --max-line-length=132 $(cat files.processed)
|
||||
after_script:
|
||||
- wc -l files.processed
|
||||
|
||||
check-gitlab-ci.yml:
|
||||
extends: .check_base
|
||||
script:
|
||||
- mv .gitlab-ci.yml .gitlab-ci.yml.orig
|
||||
- make .gitlab-ci.yml
|
||||
- diff -u .gitlab-ci.yml.orig .gitlab-ci.yml
|
||||
|
||||
check-package:
|
||||
extends: .check_base
|
||||
script:
|
||||
- make check-package
|
||||
|
||||
.defconfig_base:
|
||||
script:
|
||||
- echo "Configure Buildroot for ${DEFCONFIG_NAME}"
|
||||
- make ${DEFCONFIG_NAME}
|
||||
- echo 'Build buildroot'
|
||||
- |
|
||||
make > >(tee build.log |grep '>>>') 2>&1 || {
|
||||
echo 'Failed build last output'
|
||||
tail -200 build.log
|
||||
exit 1
|
||||
}
|
||||
artifacts:
|
||||
when: always
|
||||
expire_in: 2 weeks
|
||||
paths:
|
||||
- .config
|
||||
- build.log
|
||||
- output/images/
|
||||
- output/build/build-time.log
|
||||
- output/build/packages-file-list.txt
|
||||
- output/build/*/.config
|
||||
|
||||
.defconfig:
|
||||
extends: .defconfig_base
|
||||
# Running the defconfigs for every push is too much, so limit to
|
||||
# explicit triggers through the API.
|
||||
only:
|
||||
- triggers
|
||||
- tags
|
||||
- /-defconfigs$/
|
||||
before_script:
|
||||
- DEFCONFIG_NAME=${CI_JOB_NAME}
|
||||
|
||||
one-defconfig:
|
||||
extends: .defconfig_base
|
||||
only:
|
||||
- /^.*-.*_defconfig$/
|
||||
before_script:
|
||||
- DEFCONFIG_NAME=$(echo ${CI_COMMIT_REF_NAME} | sed -e 's,^.*-,,g')
|
||||
|
||||
.runtime_test_base:
|
||||
# Keep build directories so the rootfs can be an artifact of the job. The
|
||||
# runner will clean up those files for us.
|
||||
# Multiply every emulator timeout by 10 to avoid sporadic failures in
|
||||
# elastic runners.
|
||||
script:
|
||||
- echo "Starting runtime test ${TEST_CASE_NAME}"
|
||||
- ./support/testing/run-tests -o test-output/ -d test-dl/ -k --timeout-multiplier 10 ${TEST_CASE_NAME}
|
||||
artifacts:
|
||||
when: always
|
||||
expire_in: 2 weeks
|
||||
paths:
|
||||
- test-output/*.log
|
||||
- test-output/*/.config
|
||||
- test-output/*/images/*
|
||||
|
||||
.runtime_test:
|
||||
extends: .runtime_test_base
|
||||
# Running the runtime tests for every push is too much, so limit to
|
||||
# explicit triggers through the API.
|
||||
only:
|
||||
- triggers
|
||||
- tags
|
||||
- /-runtime-tests$/
|
||||
before_script:
|
||||
- TEST_CASE_NAME=${CI_JOB_NAME}
|
||||
|
||||
one-runtime_test:
|
||||
extends: .runtime_test_base
|
||||
only:
|
||||
- /^.*-tests\..*$/
|
||||
before_script:
|
||||
- TEST_CASE_NAME=$(echo ${CI_COMMIT_REF_NAME} | sed -e 's,^.*-,,g')
|
||||
58
Config.in
58
Config.in
@@ -80,11 +80,6 @@ config BR2_HOSTARCH_NEEDS_IA32_COMPILER
|
||||
config BR2_NEEDS_HOST_UTF8_LOCALE
|
||||
bool
|
||||
|
||||
# Hidden boolean selected by packages that need the host to have
|
||||
# support for building gcc plugins
|
||||
config BR2_NEEDS_HOST_GCC_PLUGIN_SUPPORT
|
||||
bool
|
||||
|
||||
source "arch/Config.in"
|
||||
|
||||
menu "Build options"
|
||||
@@ -119,10 +114,6 @@ config BR2_SCP
|
||||
string "Secure copy (scp) command"
|
||||
default "scp"
|
||||
|
||||
config BR2_SFTP
|
||||
string "Secure file transfer (sftp) command"
|
||||
default "sftp"
|
||||
|
||||
config BR2_HG
|
||||
string "Mercurial (hg) command"
|
||||
default "hg"
|
||||
@@ -285,15 +276,14 @@ config BR2_LUAROCKS_MIRROR
|
||||
|
||||
config BR2_CPAN_MIRROR
|
||||
string "CPAN mirror (Perl packages)"
|
||||
default "https://cpan.metacpan.org"
|
||||
default "http://cpan.metacpan.org"
|
||||
help
|
||||
CPAN (Comprehensive Perl Archive Network) is a repository of
|
||||
Perl packages. It has multiple software mirrors scattered
|
||||
around the world. This option allows you to select a mirror.
|
||||
|
||||
The list of mirrors is available at:
|
||||
http://mirrors.cpan.org/ (tabular)
|
||||
http://mirrors.cpan.org/map.html (clickable world map)
|
||||
http://search.cpan.org/mirror
|
||||
|
||||
endif
|
||||
|
||||
@@ -417,19 +407,6 @@ config BR2_DEBUG_3
|
||||
endchoice
|
||||
endif
|
||||
|
||||
config BR2_ENABLE_RUNTIME_DEBUG
|
||||
bool "build packages with runtime debugging info"
|
||||
help
|
||||
Some packages may have runtime assertions, extra traces, and
|
||||
similar runtime elements that can help debugging. However,
|
||||
these elements may negatively influence performance so should
|
||||
normally not be enabled on production systems.
|
||||
|
||||
Enable this option to enable such runtime debugging.
|
||||
|
||||
Note: disabling this option is not a guarantee that all
|
||||
packages effectively removed these runtime debugging elements.
|
||||
|
||||
config BR2_STRIP_strip
|
||||
bool "strip target binaries"
|
||||
default y
|
||||
@@ -539,14 +516,13 @@ config BR2_OPTIMIZE_S
|
||||
This is the default.
|
||||
|
||||
config BR2_OPTIMIZE_FAST
|
||||
bool "optimize for fast (may break packages!)"
|
||||
bool "optimize for fast"
|
||||
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
|
||||
help
|
||||
Optimize for fast. Disregard strict standards
|
||||
compliance. -Ofast enables all -O3 optimizations. It also
|
||||
enables optimizations that are not valid for all
|
||||
standard-compliant programs, so be careful, as it may break
|
||||
some packages. It turns on -ffast-math and the
|
||||
standard-compliant programs. It turns on -ffast-math and the
|
||||
Fortran-specific -fstack-arrays, unless -fmax-stack-var-size
|
||||
is specified, and -fno-protect-parens.
|
||||
|
||||
@@ -731,18 +707,8 @@ endmenu
|
||||
|
||||
comment "Security Hardening Options"
|
||||
|
||||
config BR2_PIC_PIE_ARCH_SUPPORTS
|
||||
bool
|
||||
default y
|
||||
# Microblaze glibc toolchains don't work with PIC/PIE enabled
|
||||
depends on !BR2_microblaze
|
||||
# Nios2 toolchains produce non working binaries with -fPIC
|
||||
depends on !BR2_nios2
|
||||
|
||||
config BR2_PIC_PIE
|
||||
bool "Build code with PIC/PIE"
|
||||
default y
|
||||
depends on BR2_PIC_PIE_ARCH_SUPPORTS
|
||||
depends on BR2_SHARED_LIBS
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_PIE
|
||||
help
|
||||
@@ -750,15 +716,12 @@ config BR2_PIC_PIE
|
||||
Position-Independent Executables (PIE).
|
||||
|
||||
comment "PIC/PIE needs a toolchain w/ PIE"
|
||||
depends on BR2_PIC_PIE_ARCH_SUPPORTS
|
||||
depends on BR2_SHARED_LIBS
|
||||
depends on !BR2_TOOLCHAIN_SUPPORTS_PIE
|
||||
|
||||
choice
|
||||
bool "Stack Smashing Protection"
|
||||
default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
|
||||
default BR2_SSP_STRONG if BR2_TOOLCHAIN_HAS_SSP_STRONG
|
||||
default BR2_SSP_REGULAR
|
||||
depends on BR2_TOOLCHAIN_HAS_SSP
|
||||
help
|
||||
Enable stack smashing protection support using GCC's
|
||||
@@ -820,8 +783,6 @@ comment "Stack Smashing Protection needs a toolchain w/ SSP"
|
||||
|
||||
choice
|
||||
bool "RELRO Protection"
|
||||
default BR2_RELRO_FULL if BR2_TOOLCHAIN_SUPPORTS_PIE
|
||||
default BR2_RELRO_PARTIAL
|
||||
depends on BR2_SHARED_LIBS
|
||||
help
|
||||
Enable a link-time protection know as RELRO (RELocation Read
|
||||
@@ -841,7 +802,6 @@ config BR2_RELRO_PARTIAL
|
||||
|
||||
config BR2_RELRO_FULL
|
||||
bool "Full"
|
||||
depends on BR2_PIC_PIE_ARCH_SUPPORTS
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_PIE
|
||||
select BR2_PIC_PIE
|
||||
help
|
||||
@@ -850,7 +810,6 @@ config BR2_RELRO_FULL
|
||||
program loading, i.e every time an executable is started.
|
||||
|
||||
comment "RELRO Full needs a toolchain w/ PIE"
|
||||
depends on BR2_PIC_PIE_ARCH_SUPPORTS
|
||||
depends on !BR2_TOOLCHAIN_SUPPORTS_PIE
|
||||
|
||||
endchoice
|
||||
@@ -858,16 +817,8 @@ endchoice
|
||||
comment "RELocation Read Only (RELRO) needs shared libraries"
|
||||
depends on !BR2_SHARED_LIBS
|
||||
|
||||
config BR2_FORTIFY_SOURCE_ARCH_SUPPORTS
|
||||
bool
|
||||
default y
|
||||
# Microblaze glibc toolchains don't work with Fortify Source enabled
|
||||
depends on !BR2_microblaze
|
||||
|
||||
choice
|
||||
bool "Buffer-overflow Detection (FORTIFY_SOURCE)"
|
||||
default BR2_FORTIFY_SOURCE_1
|
||||
depends on BR2_FORTIFY_SOURCE_ARCH_SUPPORTS
|
||||
depends on BR2_TOOLCHAIN_USES_GLIBC
|
||||
depends on !BR2_OPTIMIZE_0
|
||||
help
|
||||
@@ -908,7 +859,6 @@ config BR2_FORTIFY_SOURCE_2
|
||||
endchoice
|
||||
|
||||
comment "Fortify Source needs a glibc toolchain and optimization"
|
||||
depends on BR2_FORTIFY_SOURCE_ARCH_SUPPORTS
|
||||
depends on (!BR2_TOOLCHAIN_USES_GLIBC || BR2_OPTIMIZE_0)
|
||||
endmenu
|
||||
|
||||
|
||||
2360
Config.in.legacy
2360
Config.in.legacy
File diff suppressed because it is too large
Load Diff
1122
DEVELOPERS
1122
DEVELOPERS
File diff suppressed because it is too large
Load Diff
213
Makefile
213
Makefile
@@ -92,9 +92,9 @@ all:
|
||||
.PHONY: all
|
||||
|
||||
# Set and export the version string
|
||||
export BR2_VERSION := 2022.02.11
|
||||
export BR2_VERSION := 2020.02.1
|
||||
# Actual time the release is cut (for reproducible builds)
|
||||
BR2_VERSION_EPOCH = 1679221000
|
||||
BR2_VERSION_EPOCH = 1586551000
|
||||
|
||||
# Save running make version since it's clobbered by the make package
|
||||
RUNNING_MAKE_VERSION := $(MAKE_VERSION)
|
||||
@@ -113,19 +113,13 @@ DATE := $(shell date +%Y%m%d)
|
||||
|
||||
# Compute the full local version string so packages can use it as-is
|
||||
# Need to export it, so it can be got from environment in children (eg. mconf)
|
||||
|
||||
BR2_LOCALVERSION := $(shell $(TOPDIR)/support/scripts/setlocalversion)
|
||||
ifeq ($(BR2_LOCALVERSION),)
|
||||
export BR2_VERSION_FULL := $(BR2_VERSION)
|
||||
else
|
||||
export BR2_VERSION_FULL := $(BR2_LOCALVERSION)
|
||||
endif
|
||||
export BR2_VERSION_FULL := $(BR2_VERSION)$(shell $(TOPDIR)/support/scripts/setlocalversion)
|
||||
|
||||
# List of targets and target patterns for which .config doesn't need to be read in
|
||||
noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconfig \
|
||||
defconfig %_defconfig allyesconfig allnoconfig alldefconfig syncconfig release \
|
||||
randpackageconfig allyespackageconfig allnopackageconfig \
|
||||
print-version olddefconfig distclean manual manual-% check-package check-flake8
|
||||
print-version olddefconfig distclean manual manual-% check-package
|
||||
|
||||
# Some global targets do not trigger a build, but are used to collect
|
||||
# metadata, or do various checks. When such targets are triggered,
|
||||
@@ -141,7 +135,7 @@ nobuild_targets := source %-source \
|
||||
clean distclean help show-targets graph-depends \
|
||||
%-graph-depends %-show-depends %-show-version \
|
||||
graph-build graph-size list-defconfigs \
|
||||
savedefconfig update-defconfig printvars show-vars
|
||||
savedefconfig update-defconfig printvars
|
||||
ifeq ($(MAKECMDGOALS),)
|
||||
BR_BUILDING = y
|
||||
else ifneq ($(filter-out $(nobuild_targets),$(MAKECMDGOALS)),)
|
||||
@@ -229,8 +223,6 @@ LEGAL_MANIFEST_CSV_HOST = $(LEGAL_INFO_DIR)/host-manifest.csv
|
||||
LEGAL_WARNINGS = $(LEGAL_INFO_DIR)/.warnings
|
||||
LEGAL_REPORT = $(LEGAL_INFO_DIR)/README
|
||||
|
||||
CPE_UPDATES_DIR = $(BASE_DIR)/cpe-updates
|
||||
|
||||
BR2_CONFIG = $(CONFIG_DIR)/.config
|
||||
|
||||
# Pull in the user's configuration file
|
||||
@@ -286,16 +278,12 @@ ifndef HOSTCC
|
||||
HOSTCC := gcc
|
||||
HOSTCC := $(shell which $(HOSTCC) || type -p $(HOSTCC) || echo gcc)
|
||||
endif
|
||||
ifndef HOSTCC_NOCCACHE
|
||||
HOSTCC_NOCCACHE := $(HOSTCC)
|
||||
endif
|
||||
ifndef HOSTCXX
|
||||
HOSTCXX := g++
|
||||
HOSTCXX := $(shell which $(HOSTCXX) || type -p $(HOSTCXX) || echo g++)
|
||||
endif
|
||||
ifndef HOSTCXX_NOCCACHE
|
||||
HOSTCXX_NOCCACHE := $(HOSTCXX)
|
||||
endif
|
||||
ifndef HOSTCPP
|
||||
HOSTCPP := cpp
|
||||
endif
|
||||
@@ -426,7 +414,6 @@ unexport O
|
||||
unexport GCC_COLORS
|
||||
unexport PLATFORM
|
||||
unexport OS
|
||||
unexport DEVICE_TREE
|
||||
|
||||
GNU_HOST_NAME := $(shell support/gnuconfig/config.guess)
|
||||
|
||||
@@ -438,8 +425,21 @@ QUIET := $(if $(findstring s,$(filter-out --%,$(MAKEFLAGS))),-q)
|
||||
|
||||
# Strip off the annoying quoting
|
||||
ARCH := $(call qstrip,$(BR2_ARCH))
|
||||
NORMALIZED_ARCH := $(call qstrip,$(BR2_NORMALIZED_ARCH))
|
||||
KERNEL_ARCH := $(call qstrip,$(BR2_NORMALIZED_ARCH))
|
||||
|
||||
KERNEL_ARCH := $(shell echo "$(ARCH)" | sed -e "s/-.*//" \
|
||||
-e s/i.86/i386/ -e s/sun4u/sparc64/ \
|
||||
-e s/arcle/arc/ \
|
||||
-e s/arceb/arc/ \
|
||||
-e s/arm.*/arm/ -e s/sa110/arm/ \
|
||||
-e s/aarch64.*/arm64/ \
|
||||
-e s/nds32.*/nds32/ \
|
||||
-e s/or1k/openrisc/ \
|
||||
-e s/parisc64/parisc/ \
|
||||
-e s/powerpc64.*/powerpc/ \
|
||||
-e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
|
||||
-e s/riscv.*/riscv/ \
|
||||
-e s/sh.*/sh/ \
|
||||
-e s/microblazeel/microblaze/)
|
||||
|
||||
ZCAT := $(call qstrip,$(BR2_ZCAT))
|
||||
BZCAT := $(call qstrip,$(BR2_BZCAT))
|
||||
@@ -457,12 +457,12 @@ endif
|
||||
|
||||
ifneq ($(HOST_DIR),$(BASE_DIR)/host)
|
||||
HOST_DIR_SYMLINK = $(BASE_DIR)/host
|
||||
$(HOST_DIR_SYMLINK): | $(BASE_DIR)
|
||||
$(HOST_DIR_SYMLINK): $(BASE_DIR)
|
||||
ln -snf $(HOST_DIR) $(HOST_DIR_SYMLINK)
|
||||
endif
|
||||
|
||||
STAGING_DIR_SYMLINK = $(BASE_DIR)/staging
|
||||
$(STAGING_DIR_SYMLINK): | $(BASE_DIR)
|
||||
$(STAGING_DIR_SYMLINK): $(BASE_DIR)
|
||||
ln -snf $(STAGING_DIR) $(STAGING_DIR_SYMLINK)
|
||||
|
||||
# Quotes are needed for spaces and all in the original PATH content.
|
||||
@@ -586,9 +586,6 @@ $(BUILD_DIR)/buildroot-config/auto.conf: $(BR2_CONFIG)
|
||||
|
||||
.PHONY: prepare
|
||||
prepare: $(BUILD_DIR)/buildroot-config/auto.conf
|
||||
@$(foreach s, $(call qstrip,$(BR2_ROOTFS_PRE_BUILD_SCRIPT)), \
|
||||
$(call MESSAGE,"Executing pre-build script $(s)"); \
|
||||
$(EXTRA_ENV) $(s) $(TARGET_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep))
|
||||
|
||||
.PHONY: world
|
||||
world: target-post-image
|
||||
@@ -657,17 +654,32 @@ endef
|
||||
TARGET_FINALIZE_HOOKS += TOOLCHAIN_ECLIPSE_REGISTER
|
||||
endif
|
||||
|
||||
# Generate locale data.
|
||||
# Generate locale data. Basically, we call the localedef program
|
||||
# (built by the host-localedef package) for each locale. The input
|
||||
# data comes preferably from the toolchain, or if the toolchain does
|
||||
# not have them (Linaro toolchains), we use the ones available on the
|
||||
# host machine.
|
||||
ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),y)
|
||||
GLIBC_GENERATE_LOCALES = $(call qstrip,$(BR2_GENERATE_LOCALE))
|
||||
ifneq ($(GLIBC_GENERATE_LOCALES),)
|
||||
PACKAGES += host-localedef
|
||||
|
||||
define GENERATE_GLIBC_LOCALES
|
||||
+$(MAKE) -f support/misc/gen-glibc-locales.mk \
|
||||
ENDIAN=$(call LOWERCASE,$(BR2_ENDIAN)) \
|
||||
LOCALES="$(GLIBC_GENERATE_LOCALES)" \
|
||||
Q=$(Q)
|
||||
$(Q)mkdir -p $(TARGET_DIR)/usr/lib/locale/
|
||||
$(Q)for locale in $(GLIBC_GENERATE_LOCALES) ; do \
|
||||
inputfile=`echo $${locale} | cut -f1 -d'.'` ; \
|
||||
charmap=`echo $${locale} | cut -f2 -d'.' -s` ; \
|
||||
if test -z "$${charmap}" ; then \
|
||||
charmap="UTF-8" ; \
|
||||
fi ; \
|
||||
echo "Generating locale $${inputfile}.$${charmap}" ; \
|
||||
I18NPATH=$(STAGING_DIR)/usr/share/i18n:/usr/share/i18n \
|
||||
$(HOST_DIR)/bin/localedef \
|
||||
--prefix=$(TARGET_DIR) \
|
||||
--$(call LOWERCASE,$(BR2_ENDIAN))-endian \
|
||||
-i $${inputfile} -f $${charmap} \
|
||||
$${locale} ; \
|
||||
done
|
||||
endef
|
||||
TARGET_FINALIZE_HOOKS += GENERATE_GLIBC_LOCALES
|
||||
endif
|
||||
@@ -683,7 +695,8 @@ LOCALE_NOPURGE = $(call qstrip,$(BR2_ENABLE_LOCALE_WHITELIST))
|
||||
# in the whitelist file. If it doesn't, kill it.
|
||||
# Finally, specifically for X11, regenerate locale.dir from the whitelist.
|
||||
define PURGE_LOCALES
|
||||
printf '%s\n' $(LOCALE_NOPURGE) locale-archive > $(LOCALE_WHITELIST)
|
||||
rm -f $(LOCALE_WHITELIST)
|
||||
for i in $(LOCALE_NOPURGE) locale-archive; do echo $$i >> $(LOCALE_WHITELIST); done
|
||||
|
||||
for dir in $(addprefix $(TARGET_DIR),/usr/share/locale /usr/share/X11/locale /usr/lib/locale); \
|
||||
do \
|
||||
@@ -734,17 +747,15 @@ target-finalize: $(PACKAGES) $(TARGET_DIR) host-finalize
|
||||
$(foreach hook,$(TARGET_FINALIZE_HOOKS),$($(hook))$(sep))
|
||||
rm -rf $(TARGET_DIR)/usr/include $(TARGET_DIR)/usr/share/aclocal \
|
||||
$(TARGET_DIR)/usr/lib/pkgconfig $(TARGET_DIR)/usr/share/pkgconfig \
|
||||
$(TARGET_DIR)/usr/lib/cmake $(TARGET_DIR)/usr/share/cmake \
|
||||
$(TARGET_DIR)/usr/doc
|
||||
$(TARGET_DIR)/usr/lib/cmake $(TARGET_DIR)/usr/share/cmake
|
||||
find $(TARGET_DIR)/usr/{lib,share}/ -name '*.cmake' -print0 | xargs -0 rm -f
|
||||
find $(TARGET_DIR)/lib/ $(TARGET_DIR)/usr/lib/ $(TARGET_DIR)/usr/libexec/ \
|
||||
\( -name '*.a' -o -name '*.la' -o -name '*.prl' \) -print0 | xargs -0 rm -f
|
||||
\( -name '*.a' -o -name '*.la' \) -print0 | xargs -0 rm -f
|
||||
ifneq ($(BR2_PACKAGE_GDB),y)
|
||||
rm -rf $(TARGET_DIR)/usr/share/gdb
|
||||
endif
|
||||
ifneq ($(BR2_PACKAGE_BASH),y)
|
||||
rm -rf $(TARGET_DIR)/usr/share/bash-completion
|
||||
rm -rf $(TARGET_DIR)/etc/bash_completion.d
|
||||
endif
|
||||
ifneq ($(BR2_PACKAGE_ZSH),y)
|
||||
rm -rf $(TARGET_DIR)/usr/share/zsh
|
||||
@@ -754,9 +765,6 @@ endif
|
||||
rm -rf $(TARGET_DIR)/usr/doc $(TARGET_DIR)/usr/share/doc
|
||||
rm -rf $(TARGET_DIR)/usr/share/gtk-doc
|
||||
rmdir $(TARGET_DIR)/usr/share 2>/dev/null || true
|
||||
ifneq ($(BR2_ENABLE_DEBUG):$(BR2_STRIP_strip),y:)
|
||||
rm -rf $(TARGET_DIR)/lib/debug $(TARGET_DIR)/usr/lib/debug
|
||||
endif
|
||||
$(STRIP_FIND_CMD) | xargs -0 $(STRIPCMD) 2>/dev/null || true
|
||||
$(STRIP_FIND_SPECIAL_LIBS_CMD) | xargs -0 -r $(STRIPCMD) $(STRIP_STRIP_DEBUG) 2>/dev/null || true
|
||||
|
||||
@@ -781,9 +789,9 @@ endif
|
||||
# counterparts are appropriately setup as symlinks ones to the others.
|
||||
ifeq ($(BR2_ROOTFS_MERGED_USR),y)
|
||||
|
||||
$(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \
|
||||
@$(call MESSAGE,"Sanity check in overlay $(d)")$(sep) \
|
||||
$(Q)not_merged_dirs="$$(support/scripts/check-merged-usr.sh $(d))"; \
|
||||
@$(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \
|
||||
$(call MESSAGE,"Sanity check in overlay $(d)"); \
|
||||
not_merged_dirs="$$(support/scripts/check-merged-usr.sh $(d))"; \
|
||||
test -n "$$not_merged_dirs" && { \
|
||||
echo "ERROR: The overlay in $(d) is not" \
|
||||
"using a merged /usr for the following directories:" \
|
||||
@@ -793,20 +801,20 @@ ifeq ($(BR2_ROOTFS_MERGED_USR),y)
|
||||
|
||||
endif # merged /usr
|
||||
|
||||
$(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \
|
||||
@$(call MESSAGE,"Copying overlay $(d)")$(sep) \
|
||||
$(Q)$(call SYSTEM_RSYNC,$(d),$(TARGET_DIR))$(sep))
|
||||
@$(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \
|
||||
$(call MESSAGE,"Copying overlay $(d)"); \
|
||||
$(call SYSTEM_RSYNC,$(d),$(TARGET_DIR))$(sep))
|
||||
|
||||
$(Q)$(if $(TARGET_DIR_FILES_LISTS), \
|
||||
$(if $(TARGET_DIR_FILES_LISTS), \
|
||||
cat $(TARGET_DIR_FILES_LISTS)) > $(BUILD_DIR)/packages-file-list.txt
|
||||
$(Q)$(if $(HOST_DIR_FILES_LISTS), \
|
||||
$(if $(HOST_DIR_FILES_LISTS), \
|
||||
cat $(HOST_DIR_FILES_LISTS)) > $(BUILD_DIR)/packages-file-list-host.txt
|
||||
$(Q)$(if $(STAGING_DIR_FILES_LISTS), \
|
||||
$(if $(STAGING_DIR_FILES_LISTS), \
|
||||
cat $(STAGING_DIR_FILES_LISTS)) > $(BUILD_DIR)/packages-file-list-staging.txt
|
||||
|
||||
$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_BUILD_SCRIPT)), \
|
||||
@$(call MESSAGE,"Executing post-build script $(s)")$(sep) \
|
||||
$(Q)$(EXTRA_ENV) $(s) $(TARGET_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep))
|
||||
@$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_BUILD_SCRIPT)), \
|
||||
$(call MESSAGE,"Executing post-build script $(s)"); \
|
||||
$(EXTRA_ENV) $(s) $(TARGET_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep))
|
||||
|
||||
touch $(TARGET_DIR)/usr
|
||||
|
||||
@@ -873,9 +881,6 @@ graph-build: $(O)/build/build-time.log
|
||||
--type=pie-$(t) --input=$(<) \
|
||||
--output=$(GRAPHS_DIR)/build.pie-$(t).$(BR_GRAPH_OUT) \
|
||||
$(if $(BR2_GRAPH_ALT),--alternate-colors)$(sep))
|
||||
./support/scripts/graph-build-time --type=timeline --input=$(<) \
|
||||
--output=$(GRAPHS_DIR)/build.timeline.$(BR_GRAPH_OUT) \
|
||||
$(if $(BR2_GRAPH_ALT),--alternate-colors)
|
||||
|
||||
.PHONY: graph-depends-requirements
|
||||
graph-depends-requirements:
|
||||
@@ -921,22 +926,6 @@ show-info:
|
||||
) \
|
||||
)
|
||||
|
||||
.PHONY: pkg-stats
|
||||
pkg-stats:
|
||||
@cd "$(CONFIG_DIR)" ; \
|
||||
$(TOPDIR)/support/scripts/pkg-stats -c \
|
||||
--json $(O)/pkg-stats.json \
|
||||
--html $(O)/pkg-stats.html \
|
||||
--nvd-path $(DL_DIR)/buildroot-nvd
|
||||
|
||||
.PHONY: missing-cpe
|
||||
missing-cpe:
|
||||
$(Q)mkdir -p $(CPE_UPDATES_DIR)
|
||||
$(Q)cd "$(CONFIG_DIR)" ; \
|
||||
$(TOPDIR)/support/scripts/gen-missing-cpe \
|
||||
--nvd-path $(DL_DIR)/buildroot-nvd \
|
||||
--output $(CPE_UPDATES_DIR)
|
||||
|
||||
else # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
|
||||
|
||||
# Some subdirectories are also package names. To avoid that "make linux"
|
||||
@@ -1013,18 +1002,13 @@ oldconfig syncconfig olddefconfig: $(BUILD_DIR)/buildroot-config/conf outputmake
|
||||
defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
||||
@$(COMMON_CONFIG_ENV) $< --defconfig$(if $(DEFCONFIG),=$(DEFCONFIG)) $(CONFIG_CONFIG_IN)
|
||||
|
||||
%_defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
||||
@defconfig=$(or \
|
||||
$(firstword \
|
||||
$(foreach d, \
|
||||
$(call reverse,$(TOPDIR) $(BR2_EXTERNAL_DIRS)), \
|
||||
$(wildcard $(d)/configs/$@) \
|
||||
) \
|
||||
), \
|
||||
$(error "Can't find $@") \
|
||||
); \
|
||||
$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$${defconfig} \
|
||||
$< --defconfig=$${defconfig} $(CONFIG_CONFIG_IN)
|
||||
define percent_defconfig
|
||||
# Override the BR2_DEFCONFIG from COMMON_CONFIG_ENV with the new defconfig
|
||||
%_defconfig: $(BUILD_DIR)/buildroot-config/conf $(1)/configs/%_defconfig outputmakefile
|
||||
@$$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(1)/configs/$$@ \
|
||||
$$< --defconfig=$(1)/configs/$$@ $$(CONFIG_CONFIG_IN)
|
||||
endef
|
||||
$(eval $(foreach d,$(call reverse,$(TOPDIR) $(BR2_EXTERNAL_DIRS)),$(call percent_defconfig,$(d))$(sep)))
|
||||
|
||||
update-defconfig: savedefconfig
|
||||
|
||||
@@ -1032,7 +1016,7 @@ savedefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
||||
@$(COMMON_CONFIG_ENV) $< \
|
||||
--savedefconfig=$(if $(DEFCONFIG),$(DEFCONFIG),$(CONFIG_DIR)/defconfig) \
|
||||
$(CONFIG_CONFIG_IN)
|
||||
@$(SED) '/^BR2_DEFCONFIG=/d' $(if $(DEFCONFIG),$(DEFCONFIG),$(CONFIG_DIR)/defconfig)
|
||||
@$(SED) '/BR2_DEFCONFIG=/d' $(if $(DEFCONFIG),$(DEFCONFIG),$(CONFIG_DIR)/defconfig)
|
||||
|
||||
.PHONY: defconfig savedefconfig update-defconfig
|
||||
|
||||
@@ -1044,7 +1028,7 @@ savedefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
||||
|
||||
# staging and target directories do NOT list these as
|
||||
# dependencies anywhere else
|
||||
$(BASE_DIR) $(BUILD_DIR) $(BASE_TARGET_DIR) $(HOST_DIR) $(BINARIES_DIR) $(LEGAL_INFO_DIR) $(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST) $(PER_PACKAGE_DIR):
|
||||
$(BUILD_DIR) $(BASE_TARGET_DIR) $(HOST_DIR) $(BINARIES_DIR) $(LEGAL_INFO_DIR) $(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST) $(PER_PACKAGE_DIR):
|
||||
@mkdir -p $@
|
||||
|
||||
# outputmakefile generates a Makefile in the output directory, if using a
|
||||
@@ -1060,55 +1044,23 @@ endif
|
||||
# Makefiles. Alternatively, if a non-empty VARS variable is passed,
|
||||
# only the variables matching the make pattern passed in VARS are
|
||||
# displayed.
|
||||
# show-vars does the same, but as a JSON dictionnary.
|
||||
#
|
||||
# Note: we iterate of .VARIABLES and filter each variable individually,
|
||||
# to workaround a bug in make 4.3; see https://savannah.gnu.org/bugs/?59093
|
||||
.PHONY: printvars
|
||||
printvars:
|
||||
ifndef VARS
|
||||
$(error Please pass a non-empty VARS to 'make printvars')
|
||||
endif
|
||||
@:
|
||||
$(foreach V, \
|
||||
$(sort $(foreach X, $(.VARIABLES), $(filter $(VARS),$(X)))), \
|
||||
$(sort $(filter $(VARS),$(.VARIABLES))), \
|
||||
$(if $(filter-out environment% default automatic, \
|
||||
$(origin $V)), \
|
||||
$(if $(QUOTED_VARS),\
|
||||
$(info $V='$(subst ','\'',$(if $(RAW_VARS),$(value $V),$($V)))'), \
|
||||
$(info $V=$(if $(RAW_VARS),$(value $V),$($V))))))
|
||||
# ')))) # Syntax colouring...
|
||||
|
||||
# See details above, same as for printvars
|
||||
.PHONY: show-vars
|
||||
show-vars: VARS?=%
|
||||
show-vars:
|
||||
@:
|
||||
$(foreach i, \
|
||||
$(call clean-json, { \
|
||||
$(foreach V, \
|
||||
$(.VARIABLES), \
|
||||
$(and $(filter $(VARS),$(V)) \
|
||||
, \
|
||||
$(filter-out environment% default automatic, $(origin $V)) \
|
||||
, \
|
||||
"$V": { \
|
||||
"expanded": $(call mk-json-str,$($V))$(comma) \
|
||||
"raw": $(call mk-json-str,$(value $V)) \
|
||||
}$(comma) \
|
||||
) \
|
||||
) \
|
||||
} ) \
|
||||
, \
|
||||
$(info $(i)) \
|
||||
)
|
||||
# ' Syntax colouring...
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -rf $(BASE_TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) $(HOST_DIR_SYMLINK) \
|
||||
$(BUILD_DIR) $(BASE_DIR)/staging \
|
||||
$(LEGAL_INFO_DIR) $(GRAPHS_DIR) $(PER_PACKAGE_DIR) $(CPE_UPDATES_DIR) \
|
||||
$(O)/pkg-stats.*
|
||||
$(LEGAL_INFO_DIR) $(GRAPHS_DIR) $(PER_PACKAGE_DIR)
|
||||
|
||||
.PHONY: distclean
|
||||
distclean: clean
|
||||
@@ -1169,7 +1121,6 @@ help:
|
||||
@echo ' <pkg>-dirclean - Remove <pkg> build directory'
|
||||
@echo ' <pkg>-reconfigure - Restart the build from the configure step'
|
||||
@echo ' <pkg>-rebuild - Restart the build from the build step'
|
||||
@echo ' <pkg>-reinstall - Restart the build from the install step'
|
||||
$(foreach p,$(HELP_PACKAGES), \
|
||||
@echo $(sep) \
|
||||
@echo '$($(p)_NAME):' $(sep) \
|
||||
@@ -1192,11 +1143,7 @@ help:
|
||||
@echo ' external-deps - list external packages used'
|
||||
@echo ' legal-info - generate info about license compliance'
|
||||
@echo ' show-info - generate info about packages, as a JSON blurb'
|
||||
@echo ' pkg-stats - generate info about packages as JSON and HTML'
|
||||
@echo ' missing-cpe - generate XML snippets for missing CPE identifiers'
|
||||
@echo ' printvars - dump internal variables selected with VARS=...'
|
||||
@echo ' show-vars - dump all internal variables as a JSON blurb; use VARS=...'
|
||||
@echo ' to limit the list to variables names matching that pattern'
|
||||
@echo
|
||||
@echo ' make V=0|1 - 0 => quiet build (default), 1 => verbose build'
|
||||
@echo ' make O=dir - Locate all output files in "dir", including .config'
|
||||
@@ -1242,26 +1189,22 @@ release: OUT = buildroot-$(BR2_VERSION)
|
||||
release:
|
||||
git archive --format=tar --prefix=$(OUT)/ HEAD > $(OUT).tar
|
||||
$(MAKE) O=$(OUT) manual-html manual-text manual-pdf
|
||||
$(MAKE) O=$(OUT) distclean
|
||||
$(MAKE) O=$(OUT) clean
|
||||
tar rf $(OUT).tar $(OUT)
|
||||
gzip -9 -c < $(OUT).tar > $(OUT).tar.gz
|
||||
xz -9 -c < $(OUT).tar > $(OUT).tar.xz
|
||||
bzip2 -9 -c < $(OUT).tar > $(OUT).tar.bz2
|
||||
rm -rf $(OUT) $(OUT).tar
|
||||
|
||||
print-version:
|
||||
@echo $(BR2_VERSION_FULL)
|
||||
|
||||
check-flake8:
|
||||
$(Q)git ls-tree -r --name-only HEAD \
|
||||
| xargs file \
|
||||
| grep 'Python script' \
|
||||
| cut -d':' -f1 \
|
||||
| xargs -- python3 -m flake8 --statistics
|
||||
|
||||
check-package:
|
||||
find $(TOPDIR) -type f \( -name '*.mk' -o -name '*.hash' -o -name 'Config.*' -o -name '*.patch' \) \
|
||||
-a -not -name '*.orig' -a -not -name '*.rej' \
|
||||
-exec ./utils/check-package --exclude=Sob {} +
|
||||
find $(TOPDIR) -type f \( -name '*.mk' -o -name '*.hash' -o -name 'Config.*' \) \
|
||||
-exec ./utils/check-package {} +
|
||||
|
||||
.PHONY: .gitlab-ci.yml
|
||||
.gitlab-ci.yml: .gitlab-ci.yml.in
|
||||
./support/scripts/generate-gitlab-ci-yml $< > $@
|
||||
|
||||
include docs/manual/manual.mk
|
||||
-include $(foreach dir,$(BR2_EXTERNAL_DIRS),$(sort $(wildcard $(dir)/docs/*/*.mk)))
|
||||
|
||||
2
README
2
README
@@ -20,7 +20,7 @@ Buildroot comes with a basic configuration for a number of boards. Run
|
||||
|
||||
Please feed suggestions, bug reports, insults, and bribes back to the
|
||||
buildroot mailing list: buildroot@buildroot.org
|
||||
You can also find us on #buildroot on OFTC IRC.
|
||||
You can also find us on #buildroot on Freenode IRC.
|
||||
|
||||
If you would like to contribute patches, please read
|
||||
https://buildroot.org/manual.html#submitting-patches
|
||||
|
||||
@@ -49,7 +49,7 @@ config BR2_arm
|
||||
|
||||
config BR2_armeb
|
||||
bool "ARM (big endian)"
|
||||
select BR2_ARCH_HAS_MMU_MANDATORY
|
||||
# MMU support is set by the subarchitecture file, arch/Config.in.arm
|
||||
help
|
||||
ARM is a 32-bit reduced instruction set computer (RISC)
|
||||
instruction set architecture (ISA) developed by ARM Holdings.
|
||||
@@ -77,8 +77,9 @@ config BR2_aarch64_be
|
||||
|
||||
config BR2_csky
|
||||
bool "csky"
|
||||
select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
|
||||
select BR2_ARCH_HAS_MMU_MANDATORY
|
||||
# Most variants are supported by gcc-9+, except one that is
|
||||
# handled as a special exception in package/gcc/Config.in.host
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
|
||||
help
|
||||
csky is processor IP from china.
|
||||
@@ -209,6 +210,7 @@ config BR2_powerpc64le
|
||||
|
||||
config BR2_riscv
|
||||
bool "RISCV"
|
||||
select BR2_ARCH_HAS_MMU_MANDATORY
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
||||
help
|
||||
RISC-V is an open, free Instruction Set Architecture created
|
||||
@@ -217,18 +219,9 @@ config BR2_riscv
|
||||
https://riscv.org/
|
||||
https://en.wikipedia.org/wiki/RISC-V
|
||||
|
||||
config BR2_s390x
|
||||
bool "s390x"
|
||||
select BR2_ARCH_IS_64
|
||||
select BR2_ARCH_HAS_MMU_MANDATORY
|
||||
help
|
||||
s390x is a big-endian architecture made by IBM.
|
||||
http://www.ibm.com/
|
||||
http://en.wikipedia.org/wiki/IBM_System/390
|
||||
|
||||
config BR2_sh
|
||||
bool "SuperH"
|
||||
select BR2_ARCH_HAS_MMU_MANDATORY
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
help
|
||||
SuperH (or SH) is a 32-bit reduced instruction set computer
|
||||
(RISC) instruction set architecture (ISA) developed by
|
||||
@@ -315,22 +308,11 @@ config BR2_ARCH_NEEDS_GCC_AT_LEAST_9
|
||||
bool
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_8
|
||||
|
||||
config BR2_ARCH_NEEDS_GCC_AT_LEAST_10
|
||||
bool
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
|
||||
|
||||
config BR2_ARCH_NEEDS_GCC_AT_LEAST_11
|
||||
bool
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_10
|
||||
|
||||
# The following string values are defined by the individual
|
||||
# Config.in.$ARCH files
|
||||
config BR2_ARCH
|
||||
string
|
||||
|
||||
config BR2_NORMALIZED_ARCH
|
||||
string
|
||||
|
||||
config BR2_ENDIAN
|
||||
string
|
||||
|
||||
@@ -471,10 +453,6 @@ if BR2_riscv
|
||||
source "arch/Config.in.riscv"
|
||||
endif
|
||||
|
||||
if BR2_s390x
|
||||
source "arch/Config.in.s390x"
|
||||
endif
|
||||
|
||||
if BR2_sh
|
||||
source "arch/Config.in.sh"
|
||||
endif
|
||||
|
||||
@@ -39,14 +39,9 @@ config BR2_archs38_full
|
||||
|
||||
config BR2_archs4x_rel31
|
||||
bool "ARC HS48 rel 31"
|
||||
help
|
||||
Build for HS48 release 3.1
|
||||
|
||||
config BR2_archs4x
|
||||
bool "ARC HS48"
|
||||
help
|
||||
Latest release of HS48 processor
|
||||
- Dual and Quad multiply and MAC operations
|
||||
- Dual- and quad multiply and MC oprations
|
||||
- Double-precision FPU
|
||||
|
||||
endchoice
|
||||
@@ -54,17 +49,12 @@ endchoice
|
||||
# Choice of atomic instructions presence
|
||||
config BR2_ARC_ATOMIC_EXT
|
||||
bool "Atomic extension (LLOCK/SCOND instructions)"
|
||||
default y if BR2_arc770d
|
||||
default y if BR2_archs38 || BR2_archs38_64mpy || BR2_archs38_full
|
||||
default y if BR2_archs4x_rel31 || BR2_archs4x
|
||||
default y if BR2_arc770d || BR2_archs38 || BR2_archs38_64mpy || BR2_archs38_full || BR2_archs4x_rel31
|
||||
|
||||
config BR2_ARCH
|
||||
default "arc" if BR2_arcle
|
||||
default "arceb" if BR2_arceb
|
||||
|
||||
config BR2_NORMALIZED_ARCH
|
||||
default "arc"
|
||||
|
||||
config BR2_arc
|
||||
bool
|
||||
default y if BR2_arcle || BR2_arceb
|
||||
@@ -80,12 +70,10 @@ config BR2_GCC_TARGET_CPU
|
||||
default "hs38" if BR2_archs38_64mpy
|
||||
default "hs38_linux" if BR2_archs38_full
|
||||
default "hs4x_rel31" if BR2_archs4x_rel31
|
||||
default "hs4x" if BR2_archs4x
|
||||
|
||||
config BR2_READELF_ARCH_NAME
|
||||
default "ARCompact" if BR2_arc750d || BR2_arc770d
|
||||
default "ARCv2" if BR2_archs38 || BR2_archs38_64mpy || BR2_archs38_full
|
||||
default "ARCv2" if BR2_archs4x_rel31 || BR2_archs4x
|
||||
default "ARCv2" if BR2_archs38 || BR2_archs38_64mpy || BR2_archs38_full || BR2_archs4x_rel31
|
||||
|
||||
choice
|
||||
prompt "MMU Page Size"
|
||||
@@ -105,7 +93,7 @@ choice
|
||||
|
||||
config BR2_ARC_PAGE_SIZE_4K
|
||||
bool "4KB"
|
||||
depends on !BR2_arc750d
|
||||
depends on BR2_arc770d || BR2_archs38 || BR2_archs38_64mpy || BR2_archs38_full || BR2_archs4x_rel31
|
||||
|
||||
config BR2_ARC_PAGE_SIZE_8K
|
||||
bool "8KB"
|
||||
@@ -115,7 +103,7 @@ config BR2_ARC_PAGE_SIZE_8K
|
||||
|
||||
config BR2_ARC_PAGE_SIZE_16K
|
||||
bool "16KB"
|
||||
depends on !BR2_arc750d
|
||||
depends on BR2_arc770d || BR2_archs38 || BR2_archs38_64mpy || BR2_archs38_full || BR2_archs4x_rel31
|
||||
|
||||
endchoice
|
||||
|
||||
|
||||
@@ -259,8 +259,6 @@ config BR2_pj4
|
||||
select BR2_ARM_CPU_ARMV7A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
|
||||
# Cortex-M cores are only supported for little endian configurations
|
||||
if BR2_arm
|
||||
comment "armv7m cores"
|
||||
config BR2_cortex_m3
|
||||
bool "cortex-M3"
|
||||
@@ -277,7 +275,6 @@ config BR2_cortex_m7
|
||||
select BR2_ARM_CPU_MAYBE_HAS_FPV5
|
||||
select BR2_ARM_CPU_ARMV7M
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
||||
endif # BR2_arm
|
||||
endif # !BR2_ARCH_IS_64
|
||||
|
||||
comment "armv8 cores"
|
||||
@@ -825,10 +822,6 @@ config BR2_ARCH
|
||||
default "aarch64" if BR2_aarch64
|
||||
default "aarch64_be" if BR2_aarch64_be
|
||||
|
||||
config BR2_NORMALIZED_ARCH
|
||||
default "arm" if BR2_arm || BR2_armeb
|
||||
default "arm64" if BR2_aarch64 || BR2_aarch64_be
|
||||
|
||||
config BR2_ENDIAN
|
||||
default "LITTLE" if (BR2_arm || BR2_aarch64)
|
||||
default "BIG" if (BR2_armeb || BR2_aarch64_be)
|
||||
|
||||
@@ -39,9 +39,6 @@ config BR2_GCC_TARGET_FLOAT_ABI
|
||||
config BR2_ARCH
|
||||
default "csky"
|
||||
|
||||
config BR2_NORMALIZED_ARCH
|
||||
default "csky"
|
||||
|
||||
config BR2_ENDIAN
|
||||
default "LITTLE"
|
||||
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
config BR2_ARCH
|
||||
default "m68k" if BR2_m68k
|
||||
|
||||
config BR2_NORMALIZED_ARCH
|
||||
default "m68k"
|
||||
|
||||
config BR2_ENDIAN
|
||||
default "BIG"
|
||||
|
||||
|
||||
@@ -2,9 +2,6 @@ config BR2_ARCH
|
||||
default "microblazeel" if BR2_microblazeel
|
||||
default "microblaze" if BR2_microblazebe
|
||||
|
||||
config BR2_NORMALIZED_ARCH
|
||||
default "microblaze"
|
||||
|
||||
config BR2_ENDIAN
|
||||
default "LITTLE" if BR2_microblazeel
|
||||
default "BIG" if BR2_microblazebe
|
||||
|
||||
@@ -235,9 +235,6 @@ config BR2_ARCH
|
||||
default "mips64" if BR2_mips64
|
||||
default "mips64el" if BR2_mips64el
|
||||
|
||||
config BR2_NORMALIZED_ARCH
|
||||
default "mips"
|
||||
|
||||
config BR2_ENDIAN
|
||||
default "LITTLE" if BR2_mipsel || BR2_mips64el
|
||||
default "BIG" if BR2_mips || BR2_mips64
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
config BR2_ARCH
|
||||
default "nds32le"
|
||||
|
||||
config BR2_NORMALIZED_ARCH
|
||||
default "nds32"
|
||||
|
||||
config BR2_GCC_TARGET_ARCH
|
||||
default "v3"
|
||||
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
config BR2_ARCH
|
||||
default "nios2"
|
||||
|
||||
config BR2_NORMALIZED_ARCH
|
||||
default "nios2"
|
||||
|
||||
config BR2_ENDIAN
|
||||
default "LITTLE"
|
||||
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
config BR2_ARCH
|
||||
default "or1k"
|
||||
|
||||
config BR2_NORMALIZED_ARCH
|
||||
default "openrisc"
|
||||
|
||||
config BR2_ENDIAN
|
||||
default "BIG"
|
||||
|
||||
|
||||
@@ -11,8 +11,6 @@ choice
|
||||
Specific CPU variant to use
|
||||
config BR2_generic_powerpc
|
||||
bool "generic"
|
||||
# No C library supports this variant on ppc64le
|
||||
depends on !BR2_powerpc64le
|
||||
config BR2_powerpc_401
|
||||
bool "401"
|
||||
depends on !BR2_ARCH_IS_64
|
||||
@@ -46,6 +44,9 @@ config BR2_powerpc_476fp
|
||||
config BR2_powerpc_505
|
||||
bool "505"
|
||||
depends on !BR2_ARCH_IS_64
|
||||
config BR2_powerpc_601
|
||||
bool "601"
|
||||
depends on !BR2_ARCH_IS_64
|
||||
config BR2_powerpc_602
|
||||
bool "602"
|
||||
depends on !BR2_ARCH_IS_64
|
||||
@@ -63,12 +64,8 @@ config BR2_powerpc_604e
|
||||
depends on !BR2_ARCH_IS_64
|
||||
config BR2_powerpc_620
|
||||
bool "620"
|
||||
# No C library supports this variant on ppc64le
|
||||
depends on !BR2_powerpc64le
|
||||
config BR2_powerpc_630
|
||||
bool "630"
|
||||
# No C library supports this variant on ppc64le
|
||||
depends on !BR2_powerpc64le
|
||||
config BR2_powerpc_740
|
||||
bool "740"
|
||||
depends on !BR2_ARCH_IS_64
|
||||
@@ -121,12 +118,8 @@ config BR2_powerpc_e6500
|
||||
select BR2_POWERPC_CPU_HAS_ALTIVEC
|
||||
config BR2_powerpc_power4
|
||||
bool "power4"
|
||||
# No C library supports this variant on ppc64le
|
||||
depends on !BR2_powerpc64le
|
||||
config BR2_powerpc_power5
|
||||
bool "power5"
|
||||
# No C library supports this variant on ppc64le
|
||||
depends on !BR2_powerpc64le
|
||||
config BR2_powerpc_power6
|
||||
bool "power6"
|
||||
select BR2_POWERPC_CPU_HAS_ALTIVEC
|
||||
@@ -167,9 +160,6 @@ config BR2_ARCH
|
||||
default "powerpc64" if BR2_powerpc64
|
||||
default "powerpc64le" if BR2_powerpc64le
|
||||
|
||||
config BR2_NORMALIZED_ARCH
|
||||
default "powerpc"
|
||||
|
||||
config BR2_ENDIAN
|
||||
default "BIG" if BR2_powerpc || BR2_powerpc64
|
||||
default "LITTLE" if BR2_powerpc64le
|
||||
@@ -186,6 +176,7 @@ config BR2_GCC_TARGET_CPU
|
||||
default "476" if BR2_powerpc_476
|
||||
default "476fp" if BR2_powerpc_476fp
|
||||
default "505" if BR2_powerpc_505
|
||||
default "601" if BR2_powerpc_601
|
||||
default "602" if BR2_powerpc_602
|
||||
default "603" if BR2_powerpc_603
|
||||
default "603e" if BR2_powerpc_603e
|
||||
|
||||
@@ -71,12 +71,10 @@ choice
|
||||
|
||||
config BR2_RISCV_32
|
||||
bool "32-bit"
|
||||
select BR2_ARCH_HAS_MMU_MANDATORY
|
||||
|
||||
config BR2_RISCV_64
|
||||
bool "64-bit"
|
||||
select BR2_ARCH_IS_64
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
|
||||
endchoice
|
||||
|
||||
@@ -108,7 +106,6 @@ config BR2_RISCV_ABI_LP64
|
||||
config BR2_RISCV_ABI_LP64F
|
||||
bool "lp64f"
|
||||
depends on BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVF
|
||||
depends on BR2_USE_MMU
|
||||
|
||||
config BR2_RISCV_ABI_LP64D
|
||||
bool "lp64d"
|
||||
@@ -119,9 +116,6 @@ config BR2_ARCH
|
||||
default "riscv32" if !BR2_ARCH_IS_64
|
||||
default "riscv64" if BR2_ARCH_IS_64
|
||||
|
||||
config BR2_NORMALIZED_ARCH
|
||||
default "riscv"
|
||||
|
||||
config BR2_ENDIAN
|
||||
default "LITTLE"
|
||||
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
choice
|
||||
prompt "Target Architecture Variant"
|
||||
help
|
||||
Specific CPU variant to use
|
||||
|
||||
config BR2_s390x_z13
|
||||
bool "z13"
|
||||
|
||||
config BR2_s390x_z14
|
||||
bool "z14"
|
||||
|
||||
config BR2_s390x_z15
|
||||
bool "z15"
|
||||
|
||||
endchoice
|
||||
|
||||
config BR2_ARCH
|
||||
default "s390x" if BR2_s390x
|
||||
|
||||
config BR2_NORMALIZED_ARCH
|
||||
default "s390"
|
||||
|
||||
config BR2_ENDIAN
|
||||
default "BIG"
|
||||
|
||||
config BR2_GCC_TARGET_ARCH
|
||||
default "arch11" if BR2_s390x_z13
|
||||
default "arch12" if BR2_s390x_z14
|
||||
default "arch13" if BR2_s390x_z15
|
||||
|
||||
config BR2_READELF_ARCH_NAME
|
||||
default "IBM S/390" if BR2_s390x
|
||||
@@ -5,6 +5,8 @@ choice
|
||||
help
|
||||
Specific CPU variant to use
|
||||
|
||||
config BR2_sh2a
|
||||
bool "sh2a (SH2A big endian)"
|
||||
config BR2_sh4
|
||||
bool "sh4 (SH4 little endian)"
|
||||
config BR2_sh4eb
|
||||
@@ -16,17 +18,15 @@ config BR2_sh4aeb
|
||||
endchoice
|
||||
|
||||
config BR2_ARCH
|
||||
default "sh2a" if BR2_sh2a
|
||||
default "sh4" if BR2_sh4
|
||||
default "sh4eb" if BR2_sh4eb
|
||||
default "sh4a" if BR2_sh4a
|
||||
default "sh4aeb" if BR2_sh4aeb
|
||||
|
||||
config BR2_NORMALIZED_ARCH
|
||||
default "sh"
|
||||
|
||||
config BR2_ENDIAN
|
||||
default "LITTLE" if BR2_sh4 || BR2_sh4a
|
||||
default "BIG" if BR2_sh4eb || BR2_sh4aeb
|
||||
default "BIG" if BR2_sh2a || BR2_sh4eb || BR2_sh4aeb
|
||||
|
||||
config BR2_READELF_ARCH_NAME
|
||||
default "Renesas / SuperH SH"
|
||||
|
||||
@@ -21,10 +21,6 @@ config BR2_ARCH
|
||||
default "sparc" if BR2_sparc
|
||||
default "sparc64" if BR2_sparc64
|
||||
|
||||
config BR2_NORMALIZED_ARCH
|
||||
default "sparc" if BR2_sparc
|
||||
default "sparc64" if BR2_sparc64
|
||||
|
||||
config BR2_ENDIAN
|
||||
default "BIG"
|
||||
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
# i386/x86_64 cpu features
|
||||
config BR2_X86_CPU_HAS_MMX
|
||||
bool
|
||||
config BR2_X86_CPU_HAS_3DNOW
|
||||
bool
|
||||
config BR2_X86_CPU_HAS_SSE
|
||||
bool
|
||||
config BR2_X86_CPU_HAS_SSE2
|
||||
@@ -19,12 +17,7 @@ config BR2_X86_CPU_HAS_AVX
|
||||
bool
|
||||
config BR2_X86_CPU_HAS_AVX2
|
||||
bool
|
||||
config BR2_X86_CPU_HAS_AVX512
|
||||
bool
|
||||
|
||||
# This list of CPU architecture variant is (loosely) ordered according
|
||||
# to the gcc documentation at
|
||||
# https://gcc.gnu.org/onlinedocs/gcc-11.2.0/gcc/x86-Options.html
|
||||
choice
|
||||
prompt "Target Architecture Variant"
|
||||
default BR2_x86_i586 if BR2_i386
|
||||
@@ -86,78 +79,6 @@ config BR2_x86_prescott
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
config BR2_x86_x86_64
|
||||
bool "x86-64"
|
||||
depends on BR2_x86_64
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
help
|
||||
This option corresponds to -march=x86-64, documented as a
|
||||
"Generic CPU with 64-bit extensions" by the GCC
|
||||
documentation. It is a 64-bit CPU with MMX, SSE and SSE2
|
||||
support.
|
||||
config BR2_x86_x86_64_v2
|
||||
bool "x86-64-v2"
|
||||
depends on BR2_x86_64
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_11
|
||||
help
|
||||
This option corresponds to the x86-64-v2 micro-architecture
|
||||
level, as defined by the x86-64 psABI document, see
|
||||
https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex.
|
||||
|
||||
It is close to the Nehalem CPU architecture, and is
|
||||
applicable for CPUs that support CMPXCHG16B, LAHF-SAHF,
|
||||
POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3.
|
||||
config BR2_x86_x86_64_v3
|
||||
bool "x86-64-v3"
|
||||
depends on BR2_x86_64
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_X86_CPU_HAS_AVX
|
||||
select BR2_X86_CPU_HAS_AVX2
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_11
|
||||
help
|
||||
This option corresponds to the x86-64-v3 micro-architecture
|
||||
level, as defined by the x86-64 psABI document, see
|
||||
https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex.
|
||||
|
||||
It is close to the Haswell CPU architecture, and is
|
||||
applicable for CPUs that support all of x86-64-v2 plus AVX,
|
||||
AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE.
|
||||
config BR2_x86_x86_64_v4
|
||||
bool "x86-64-v4"
|
||||
depends on BR2_x86_64
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_X86_CPU_HAS_AVX
|
||||
select BR2_X86_CPU_HAS_AVX2
|
||||
select BR2_X86_CPU_HAS_AVX512
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_11
|
||||
help
|
||||
This option corresponds to the x86-64-v4 micro-architecture
|
||||
level, as defined by the x86-64 psABI document, see
|
||||
https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex.
|
||||
|
||||
It is applicable for CPUs that support all of x86-64-v3 plus
|
||||
AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL.
|
||||
config BR2_x86_nocona
|
||||
bool "nocona"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
@@ -180,19 +101,6 @@ config BR2_x86_corei7
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
help
|
||||
This option is deprecated. Since gcc 4.9, the gcc option
|
||||
"nehalem" is preferred. Use BR2_x86_nehalem instead.
|
||||
config BR2_x86_nehalem
|
||||
bool "nehalem"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
|
||||
config BR2_x86_westmere
|
||||
bool "westmere"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
@@ -202,7 +110,6 @@ config BR2_x86_westmere
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
|
||||
config BR2_x86_corei7_avx
|
||||
bool "corei7-avx"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
@@ -213,20 +120,6 @@ config BR2_x86_corei7_avx
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_X86_CPU_HAS_AVX
|
||||
help
|
||||
This option is deprecated. Since gcc 4.9, the gcc option
|
||||
"sandybridge" is preferred. Use BR2_x86_sandybridge instead.
|
||||
config BR2_x86_sandybridge
|
||||
bool "sandybridge"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_X86_CPU_HAS_AVX
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
|
||||
config BR2_x86_core_avx2
|
||||
bool "core-avx2"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
@@ -238,45 +131,6 @@ config BR2_x86_core_avx2
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_X86_CPU_HAS_AVX
|
||||
select BR2_X86_CPU_HAS_AVX2
|
||||
help
|
||||
This option is deprecated. Since gcc 4.9, the gcc option
|
||||
"haswell" is preferred. Use BR2_x86_haswell instead.
|
||||
config BR2_x86_haswell
|
||||
bool "haswell"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_X86_CPU_HAS_AVX
|
||||
select BR2_X86_CPU_HAS_AVX2
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
|
||||
config BR2_x86_broadwell
|
||||
bool "broadwell"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_X86_CPU_HAS_AVX
|
||||
select BR2_X86_CPU_HAS_AVX2
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
|
||||
config BR2_x86_skylake
|
||||
bool "skylake"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_X86_CPU_HAS_AVX
|
||||
select BR2_X86_CPU_HAS_AVX2
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
|
||||
config BR2_x86_atom
|
||||
bool "atom"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
@@ -284,17 +138,6 @@ config BR2_x86_atom
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
help
|
||||
This option is deprecated. Since gcc 4.9, the gcc option
|
||||
"bonnell" is preferred. Use BR2_x86_bonnell instead.
|
||||
config BR2_x86_bonnell
|
||||
bool "bonnell"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
|
||||
config BR2_x86_silvermont
|
||||
bool "silvermont"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
@@ -304,167 +147,6 @@ config BR2_x86_silvermont
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
|
||||
config BR2_x86_goldmont
|
||||
bool "goldmont"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
|
||||
config BR2_x86_goldmont_plus
|
||||
bool "goldmont-plus"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
|
||||
config BR2_x86_tremont
|
||||
bool "tremont"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
|
||||
config BR2_x86_skylake_avx512
|
||||
bool "skylake-avx512"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_X86_CPU_HAS_AVX
|
||||
select BR2_X86_CPU_HAS_AVX2
|
||||
select BR2_X86_CPU_HAS_AVX512
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
|
||||
config BR2_x86_cannonlake
|
||||
bool "cannonlake"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_X86_CPU_HAS_AVX
|
||||
select BR2_X86_CPU_HAS_AVX2
|
||||
select BR2_X86_CPU_HAS_AVX512
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_8
|
||||
config BR2_x86_icelake_client
|
||||
bool "icelake-client"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_X86_CPU_HAS_AVX
|
||||
select BR2_X86_CPU_HAS_AVX2
|
||||
select BR2_X86_CPU_HAS_AVX512
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_8
|
||||
config BR2_x86_icelake_server
|
||||
bool "icelake-server"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_X86_CPU_HAS_AVX
|
||||
select BR2_X86_CPU_HAS_AVX2
|
||||
select BR2_X86_CPU_HAS_AVX512
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_8
|
||||
config BR2_x86_cascadelake
|
||||
bool "cascadelake"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_X86_CPU_HAS_AVX
|
||||
select BR2_X86_CPU_HAS_AVX2
|
||||
select BR2_X86_CPU_HAS_AVX512
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
|
||||
config BR2_x86_cooperlake
|
||||
bool "cooperlake"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_X86_CPU_HAS_AVX
|
||||
select BR2_X86_CPU_HAS_AVX2
|
||||
select BR2_X86_CPU_HAS_AVX512
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_10
|
||||
config BR2_x86_tigerlake
|
||||
bool "tigerlake"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_X86_CPU_HAS_AVX
|
||||
select BR2_X86_CPU_HAS_AVX2
|
||||
select BR2_X86_CPU_HAS_AVX512
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
|
||||
config BR2_x86_sapphirerapids
|
||||
bool "sapphirerapids"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_X86_CPU_HAS_AVX
|
||||
select BR2_X86_CPU_HAS_AVX2
|
||||
select BR2_X86_CPU_HAS_AVX512
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_11
|
||||
config BR2_x86_alderlake
|
||||
bool "alderlake"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_X86_CPU_HAS_AVX
|
||||
select BR2_X86_CPU_HAS_AVX2
|
||||
select BR2_X86_CPU_HAS_AVX512
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_11
|
||||
config BR2_x86_rocketlake
|
||||
bool "rocketlake"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
select BR2_X86_CPU_HAS_AVX
|
||||
select BR2_X86_CPU_HAS_AVX2
|
||||
select BR2_X86_CPU_HAS_AVX512
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_11
|
||||
config BR2_x86_k6
|
||||
bool "k6"
|
||||
depends on !BR2_x86_64
|
||||
@@ -473,18 +155,15 @@ config BR2_x86_k6_2
|
||||
bool "k6-2"
|
||||
depends on !BR2_x86_64
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_3DNOW
|
||||
config BR2_x86_athlon
|
||||
bool "athlon"
|
||||
depends on !BR2_x86_64
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_3DNOW
|
||||
config BR2_x86_athlon_4
|
||||
bool "athlon-4"
|
||||
depends on !BR2_x86_64
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_3DNOW
|
||||
config BR2_x86_opteron
|
||||
bool "opteron"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
@@ -530,7 +209,6 @@ config BR2_x86_c3
|
||||
bool "Via/Cyrix C3 (Samuel/Ezra cores)"
|
||||
depends on !BR2_x86_64
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_3DNOW
|
||||
config BR2_x86_c32
|
||||
bool "Via C3-2 (Nehemiah cores)"
|
||||
depends on !BR2_x86_64
|
||||
@@ -556,16 +234,30 @@ config BR2_ARCH
|
||||
default "i686" if BR2_x86_c32
|
||||
default "i586" if BR2_x86_winchip_c6
|
||||
default "i586" if BR2_x86_winchip2
|
||||
# We use the property of Kconfig that the first match of a
|
||||
# list of default will be chosen. So the following entry will
|
||||
# not match for all BR2_i386=y configurations, but only the
|
||||
# ones that didn't match any of the previous cases (i486,
|
||||
# i586).
|
||||
default "i686" if BR2_i386
|
||||
default "x86_64" if BR2_x86_64
|
||||
|
||||
config BR2_NORMALIZED_ARCH
|
||||
default "i386" if !BR2_x86_64
|
||||
default "i686" if BR2_x86_i686
|
||||
default "i686" if BR2_x86_pentium2
|
||||
default "i686" if BR2_x86_pentium3
|
||||
default "i686" if BR2_x86_pentium4
|
||||
default "i686" if BR2_x86_pentium_m
|
||||
default "i686" if BR2_x86_pentiumpro
|
||||
default "i686" if BR2_x86_prescott
|
||||
default "i686" if BR2_x86_nocona && BR2_i386
|
||||
default "i686" if BR2_x86_core2 && BR2_i386
|
||||
default "i686" if BR2_x86_corei7 && BR2_i386
|
||||
default "i686" if BR2_x86_westmere && BR2_i386
|
||||
default "i686" if BR2_x86_corei7_avx && BR2_i386
|
||||
default "i686" if BR2_x86_core_avx2 && BR2_i386
|
||||
default "i686" if BR2_x86_atom && BR2_i386
|
||||
default "i686" if BR2_x86_silvermont && BR2_i386
|
||||
default "i686" if BR2_x86_opteron && BR2_i386
|
||||
default "i686" if BR2_x86_opteron_sse3 && BR2_i386
|
||||
default "i686" if BR2_x86_barcelona && BR2_i386
|
||||
default "i686" if BR2_x86_jaguar && BR2_i386
|
||||
default "i686" if BR2_x86_steamroller && BR2_i386
|
||||
default "i686" if BR2_x86_k6
|
||||
default "i686" if BR2_x86_k6_2
|
||||
default "i686" if BR2_x86_athlon
|
||||
default "i686" if BR2_x86_athlon_4
|
||||
default "x86_64" if BR2_x86_64
|
||||
|
||||
config BR2_ENDIAN
|
||||
@@ -583,37 +275,14 @@ config BR2_GCC_TARGET_ARCH
|
||||
default "pentium3" if BR2_x86_pentium3
|
||||
default "pentium4" if BR2_x86_pentium4
|
||||
default "prescott" if BR2_x86_prescott
|
||||
default "x86-64" if BR2_x86_x86_64
|
||||
default "x86-64-v2" if BR2_x86_x86_64_v2
|
||||
default "x86-64-v3" if BR2_x86_x86_64_v3
|
||||
default "x86-64-v4" if BR2_x86_x86_64_v4
|
||||
default "nocona" if BR2_x86_nocona
|
||||
default "core2" if BR2_x86_core2
|
||||
default "corei7" if BR2_x86_corei7
|
||||
default "nehalem" if BR2_x86_nehalem
|
||||
default "corei7-avx" if BR2_x86_corei7_avx
|
||||
default "sandybridge" if BR2_x86_sandybridge
|
||||
default "core-avx2" if BR2_x86_core_avx2
|
||||
default "haswell" if BR2_x86_haswell
|
||||
default "broadwell" if BR2_x86_broadwell
|
||||
default "skylake" if BR2_x86_skylake
|
||||
default "atom" if BR2_x86_atom
|
||||
default "bonnell" if BR2_x86_bonnell
|
||||
default "westmere" if BR2_x86_westmere
|
||||
default "silvermont" if BR2_x86_silvermont
|
||||
default "goldmont" if BR2_x86_goldmont
|
||||
default "goldmont-plus" if BR2_x86_goldmont_plus
|
||||
default "tremont" if BR2_x86_tremont
|
||||
default "skylake-avx512" if BR2_x86_skylake_avx512
|
||||
default "cannonlake" if BR2_x86_cannonlake
|
||||
default "icelake-client" if BR2_x86_icelake_client
|
||||
default "icelake-server" if BR2_x86_icelake_server
|
||||
default "cascadelake" if BR2_x86_cascadelake
|
||||
default "cooperlake" if BR2_x86_cooperlake
|
||||
default "tigerlake" if BR2_x86_tigerlake
|
||||
default "sapphirerapids" if BR2_x86_sapphirerapids
|
||||
default "alderlake" if BR2_x86_alderlake
|
||||
default "rocketlake" if BR2_x86_rocketlake
|
||||
default "k8" if BR2_x86_opteron
|
||||
default "k8-sse3" if BR2_x86_opteron_sse3
|
||||
default "barcelona" if BR2_x86_barcelona
|
||||
|
||||
@@ -48,9 +48,6 @@ config BR2_ENDIAN
|
||||
config BR2_ARCH
|
||||
default "xtensa" if BR2_xtensa
|
||||
|
||||
config BR2_NORMALIZED_ARCH
|
||||
default "xtensa"
|
||||
|
||||
config BR2_READELF_ARCH_NAME
|
||||
default "Tensilica Xtensa Processor"
|
||||
|
||||
|
||||
@@ -1,9 +1,3 @@
|
||||
BR_ARCH_XTENSA_OVERLAY_FILE = $(call qstrip,$(BR2_XTENSA_OVERLAY_FILE))
|
||||
|
||||
ifeq ($(BR_BUILDING)$(BR2_XTENSA_CUSTOM)$(BR2_TOOLCHAIN_BUILDROOT):$(BR_ARCH_XTENSA_OVERLAY_FILE),yyy:)
|
||||
$(error No xtensa overlay file provided. Check your BR2_XTENSA_OVERLAY_FILE setting)
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
# This variable can be used by packages that need to extract the overlay.
|
||||
#
|
||||
@@ -15,6 +9,7 @@ endif
|
||||
# tar xf $(ARCH_XTENSA_OVERLAY_FILE) -C $(@D) --strip-components=1 gcc
|
||||
# endif
|
||||
################################################################################
|
||||
BR_ARCH_XTENSA_OVERLAY_FILE = $(call qstrip,$(BR2_XTENSA_OVERLAY_FILE))
|
||||
ifneq ($(filter http://% https://% ftp://% scp://%,$(BR_ARCH_XTENSA_OVERLAY_FILE)),)
|
||||
ARCH_XTENSA_OVERLAY_URL = $(BR_ARCH_XTENSA_OVERLAY_FILE)
|
||||
ARCH_XTENSA_OVERLAY_FILE = $($(PKG)_DL_DIR)/$(notdir $(BR_ARCH_XTENSA_OVERLAY_FILE))
|
||||
|
||||
@@ -1,30 +1,30 @@
|
||||
image efi-part.vfat {
|
||||
vfat {
|
||||
file EFI {
|
||||
image = "efi-part/EFI"
|
||||
}
|
||||
file Image {
|
||||
image = "Image"
|
||||
}
|
||||
}
|
||||
|
||||
size = 64M
|
||||
vfat {
|
||||
file startup.nsh {
|
||||
image = "efi-part/startup.nsh"
|
||||
}
|
||||
file EFI {
|
||||
image = "efi-part/EFI"
|
||||
}
|
||||
file Image {
|
||||
image = "Image"
|
||||
}
|
||||
}
|
||||
size = 32M
|
||||
}
|
||||
|
||||
image disk.img {
|
||||
hdimage {
|
||||
partition-table-type = "gpt"
|
||||
}
|
||||
|
||||
partition boot {
|
||||
image = "efi-part.vfat"
|
||||
partition-type-uuid = c12a7328-f81f-11d2-ba4b-00a0c93ec93b
|
||||
offset = 32K
|
||||
bootable = true
|
||||
}
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition root {
|
||||
partition-type-uuid = b921b045-1df0-41c3-af44-4c6f280d3fae
|
||||
image = "rootfs.ext2"
|
||||
}
|
||||
partition boot {
|
||||
partition-type = 0xEF
|
||||
image = "efi-part.vfat"
|
||||
}
|
||||
|
||||
partition root {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,5 +2,5 @@ set default="0"
|
||||
set timeout="5"
|
||||
|
||||
menuentry "Buildroot" {
|
||||
linux /Image root=PARTLABEL=root rootwait
|
||||
linux /Image root=/dev/vda2 rootwait console=ttyAMA0
|
||||
}
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
|
||||
The aarch64_efi_defconfig allows to build a minimal Linux system that
|
||||
can boot on all AArch64 servers providing an EFI firmware.
|
||||
|
||||
This includes all Arm EBBR[1] compliant systems, and all Arm SystemReady[2]
|
||||
compliant systems for example.
|
||||
|
||||
can boot on all AArch64 servers providing an EFI firmware and ACPI.
|
||||
|
||||
Building and booting
|
||||
====================
|
||||
@@ -36,18 +32,3 @@ Note that </path/to/QEMU_EFI.fd> needs to point to a valid aarch64 UEFI
|
||||
firmware image for qemu.
|
||||
It may be provided by your distribution as a edk2-aarch64 or AAVMF
|
||||
package, in path such as /usr/share/edk2/aarch64/QEMU_EFI.fd .
|
||||
|
||||
U-Boot based qemu firmware
|
||||
==========================
|
||||
|
||||
A qemu firmware with support for UEFI based on U-Boot can be built following
|
||||
the instructions in [3], with qemu_arm64_defconfig.
|
||||
|
||||
This should give you a nor_flash.bin, which you can use with qemu as an
|
||||
alternative to QEMU_EFI.fd. You will also need to change the machine
|
||||
specification to "-M virt,secure=on" on qemu command line, to enable TrustZone
|
||||
support, and you will need to increase the memory with "-m 1024".
|
||||
|
||||
[1]: https://github.com/ARM-software/ebbr
|
||||
[2]: https://developer.arm.com/architectures/system-architectures/arm-systemready
|
||||
[3]: https://github.com/glikely/u-boot-tfa-build
|
||||
|
||||
@@ -1,301 +0,0 @@
|
||||
/*
|
||||
* acme-acqua.dts - Device Tree file for Acqua A5 Board
|
||||
*
|
||||
* Copyright (C) 2014 Atmel,
|
||||
* 2014 Nicolas Ferre <nicolas.ferre@atmel.com>
|
||||
*
|
||||
* 2020 Sergio Tanzilli <tanzilli@acmesystems.it>
|
||||
*
|
||||
* Licensed under GPLv2 or later.
|
||||
*/
|
||||
/dts-v1/;
|
||||
#include "sama5d31.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Acme Systems Acqua SOM";
|
||||
compatible = "acme,acqua", "atmel,sama5d3", "atmel,sama5";
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
bootargs = "mem=256M console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rw rootwait consoleblank=0";
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x20000000 0x10000000>;
|
||||
};
|
||||
|
||||
clocks {
|
||||
slow_xtal {
|
||||
clock-frequency = <32768>;
|
||||
};
|
||||
|
||||
main_xtal {
|
||||
clock-frequency = <12000000>;
|
||||
};
|
||||
};
|
||||
|
||||
ahb {
|
||||
apb {
|
||||
hlcdc: hlcdc@f0030000 {
|
||||
status = "disabled";
|
||||
hlcdc-display-controller {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb888_alt>;
|
||||
port@0 {
|
||||
hlcdc_panel_output: endpoint@0 {
|
||||
remote-endpoint = <&panel_input>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* MicroSD mounted on the SOM */
|
||||
|
||||
mmc0: mmc@f0000000 {
|
||||
pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_cd>;
|
||||
status = "okay";
|
||||
slot@0 {
|
||||
reg = <0>;
|
||||
bus-width = <4>;
|
||||
};
|
||||
};
|
||||
|
||||
/* Optional MicroSD to mount on the carrier board */
|
||||
|
||||
mmc1: mmc@f8000000 {
|
||||
pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
|
||||
status = "disabled";
|
||||
slot@0 {
|
||||
reg = <0>;
|
||||
bus-width = <4>;
|
||||
cd-gpios = <&pioE 1 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
spi0: spi@f0004000 {
|
||||
cs-gpios = <&pioD 13 0>, <0>, <0>, <&pioD 16 0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
can0: can@f000c000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
tcb0: timer@f0010000 {
|
||||
timer0: timer@0 {
|
||||
compatible = "atmel,tcb-timer";
|
||||
reg = <0>;
|
||||
};
|
||||
|
||||
timer1: timer@1 {
|
||||
compatible = "atmel,tcb-timer";
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c0: i2c@f0014000 {
|
||||
pinctrl-0 = <&pinctrl_i2c0_pu>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c1: i2c@f0018000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
macb1: ethernet@f802c000 {
|
||||
compatible = "atmel,sama5d3-macb", "cdns,at91sam9260-macb", "cdns,macb";
|
||||
|
||||
status = "okay";
|
||||
phy-mode = "rmii";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
nvmem-cells = <ð0_addr>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
phy0: ethernet-phy@1 {
|
||||
interrupt-parent = <&pioE>;
|
||||
interrupts = <30 IRQ_TYPE_EDGE_FALLING>;
|
||||
reg = <1>;
|
||||
};
|
||||
|
||||
/*ethernet-phy@1 {
|
||||
reg = <0x1>;
|
||||
};*/
|
||||
};
|
||||
|
||||
/* Bit banging internal I2C to manage the AT24MAC402 chip */
|
||||
|
||||
i2c3@ {
|
||||
compatible = "i2c-gpio";
|
||||
gpios = <&pioE 1 0 /* SDA */
|
||||
&pioE 2 0 /* SCK */
|
||||
>;
|
||||
i2c-gpio,delay-us = <4>; /* ~178 kHz */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
/* EEPROM contains the eth0 MAC address */
|
||||
|
||||
eeprom@58 {
|
||||
compatible = "atmel,24mac402";
|
||||
pagesize = <256>;
|
||||
read-only;
|
||||
reg = <0x58>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
eth0_addr: eth-mac-addr@9A {
|
||||
reg = <0x0 0x06>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pwm0: pwm@f002c000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pwm0_pwmh0_0 &pinctrl_pwm0_pwmh1_0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usart0: serial@f001c000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usart1: serial@f0020000 {
|
||||
pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart0: serial@f0024000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
||||
spi1: spi@f8008000 {
|
||||
cs-gpios = <&pioC 25 0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
adc0: adc@f8018000 {
|
||||
atmel,adc-vref = <3300>;
|
||||
atmel,adc-channels-used = <0xfe>;
|
||||
pinctrl-0 = <
|
||||
&pinctrl_adc0_adtrg
|
||||
&pinctrl_adc0_ad1
|
||||
&pinctrl_adc0_ad2
|
||||
&pinctrl_adc0_ad3
|
||||
&pinctrl_adc0_ad4
|
||||
&pinctrl_adc0_ad5
|
||||
&pinctrl_adc0_ad6
|
||||
&pinctrl_adc0_ad7
|
||||
>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c2: i2c@f801c000 {
|
||||
dmas = <0>, <0>; /* Do not use DMA for i2c2 */
|
||||
pinctrl-0 = <&pinctrl_i2c2_pu>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
||||
dbgu: serial@ffffee00 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pinctrl@fffff200 {
|
||||
board {
|
||||
pinctrl_i2c0_pu: i2c0_pu {
|
||||
atmel,pins =
|
||||
<AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
|
||||
<AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
|
||||
};
|
||||
|
||||
pinctrl_i2c2_pu: i2c2_pu {
|
||||
atmel,pins =
|
||||
<AT91_PIOA 18 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
|
||||
<AT91_PIOA 19 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
|
||||
};
|
||||
|
||||
pinctrl_key_gpio: key_gpio_0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 29 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
|
||||
};
|
||||
|
||||
pinctrl_mmc0_cd: mmc0_cd {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 0 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
|
||||
};
|
||||
|
||||
pinctrl_mmc1_cd: mmc1_cd {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
|
||||
};
|
||||
|
||||
pinctrl_usba_vbus: usba_vbus {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PE9, conflicts with A9 */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
usb0: gadget@500000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb1: ohci@600000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb2: ehci@700000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
panel: panel {
|
||||
/* compatible = "acme,43inch", "simple-panel"; */
|
||||
compatible = "acme,50inch", "simple-panel";
|
||||
/* compatible = "acme,70inch", "simple-panel"; */
|
||||
|
||||
status = "disable";
|
||||
|
||||
port@0 {
|
||||
panel_input: endpoint@0 {
|
||||
remote-endpoint = <&hlcdc_panel_output>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led0 {
|
||||
label = "led0";
|
||||
gpios = <&pioE 3 GPIO_ACTIVE_LOW>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
led1 {
|
||||
label = "led1";
|
||||
gpios = <&pioE 4 GPIO_ACTIVE_LOW>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
led2 {
|
||||
label = "led2";
|
||||
gpios = <&pioE 5 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "heartbeat";
|
||||
};
|
||||
|
||||
led3 {
|
||||
label = "led3";
|
||||
gpios = <&pioE 6 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "mmc0";
|
||||
default-state = "off";
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -1,29 +0,0 @@
|
||||
# Minimal SD card image for the Acme Systems Acqua A5
|
||||
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"boot.bin",
|
||||
"zImage",
|
||||
"at91-sama5d3_acqua.dtb"
|
||||
}
|
||||
}
|
||||
|
||||
size = 16M
|
||||
}
|
||||
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition boot {
|
||||
partition-type = 0xC
|
||||
bootable = "true"
|
||||
image = "boot.vfat"
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
}
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
Acme Systems Acqua A5
|
||||
|
||||
Intro
|
||||
=====
|
||||
|
||||
The Acqua A5 is a system on module based on the Microchip SAMA5D31 SoC:
|
||||
|
||||
https://www.acmesystems.it/acqua
|
||||
|
||||
The files here support configurations that build a microSD image for a
|
||||
minimal system that can be accessed through the serial console. You will
|
||||
need an USB-to-serial interface in order to access that console from
|
||||
your computer:
|
||||
|
||||
https://www.acmesystems.it/DPI
|
||||
|
||||
How to build the image
|
||||
======================
|
||||
|
||||
If you have an Acqua module with 256 MiB of RAM, type:
|
||||
|
||||
$ make acmesystems_acqua_a5_256mb_defconfig
|
||||
|
||||
If you have the 512 MiB version, type instead:
|
||||
|
||||
$ make acmesystems_acqua_a5_512mb_defconfig
|
||||
|
||||
You can optionally tweak the configuration and add packages by typing:
|
||||
|
||||
$ make menuconfig
|
||||
|
||||
Then, proceed with the build:
|
||||
|
||||
$ make
|
||||
|
||||
How to write the microSD card
|
||||
=============================
|
||||
|
||||
The system image is the file "sdcard.img" in the "output/images"
|
||||
directory. Write it to the card by invoking:
|
||||
|
||||
$ sudo dd if=output/images/sdcard.img of=/dev/sdX bs=1M
|
||||
|
||||
where `sdX' is the block device representing the microSD card.
|
||||
@@ -11,10 +11,9 @@ image boot.vfat {
|
||||
}
|
||||
|
||||
file boot.bin {
|
||||
image = "at91sam9x5_aria-sdcardboot-linux-zimage-dt-3.10.3.bin"
|
||||
image = "at91sam9x5_aria-sdcardboot-linux-zimage-dt-3.8.13.bin"
|
||||
}
|
||||
}
|
||||
|
||||
size = 16M
|
||||
}
|
||||
|
||||
|
||||
@@ -5,16 +5,15 @@ image boot.vfat {
|
||||
file zImage {
|
||||
image = "zImage"
|
||||
}
|
||||
|
||||
|
||||
file acme-arietta.dtb {
|
||||
image = "at91-ariettag25.dtb"
|
||||
}
|
||||
|
||||
|
||||
file boot.bin {
|
||||
image = "at91sam9x5_arietta-sdcardboot-linux-zimage-dt-3.10.3.bin"
|
||||
}
|
||||
image = "at91sam9x5_arietta-sdcardboot-linux-zimage-dt-3.8.13.bin"
|
||||
}
|
||||
}
|
||||
|
||||
size = 16M
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@ image boot.vfat {
|
||||
"socfpga_cyclone5_socrates.dtb"
|
||||
}
|
||||
}
|
||||
|
||||
size = 8M
|
||||
}
|
||||
|
||||
@@ -18,13 +17,13 @@ image uboot.img {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot-spl.bin.crc"
|
||||
offset = 0
|
||||
size = 64K
|
||||
size = 64k
|
||||
}
|
||||
|
||||
partition uboot-full {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot.img"
|
||||
offset = 256K
|
||||
offset = 256k
|
||||
}
|
||||
|
||||
size = 1M
|
||||
@@ -37,7 +36,7 @@ image sdcard.img {
|
||||
partition uboot-env {
|
||||
in-partition-table = "no"
|
||||
image = "uboot-env.bin"
|
||||
offset = 17K # 512 * 34 -> just after gpt
|
||||
offset = 17408 # 512 * 34 -> just after gpt
|
||||
}
|
||||
|
||||
partition boot {
|
||||
|
||||
@@ -6,6 +6,5 @@ image boot.vfat {
|
||||
"extlinux"
|
||||
}
|
||||
}
|
||||
|
||||
size = 64M
|
||||
}
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
From 8ee2b03039cccf64402a72dea2185d7fe1972729 Mon Sep 17 00:00:00 2001
|
||||
From: Shyam Saini <shyam.saini@amarulasolutions.com>
|
||||
Date: Mon, 15 Apr 2019 16:16:16 +0530
|
||||
Subject: [PATCH] include: configs: Increase CONFIG_SYS_BOOTM_LEN to 16MB
|
||||
|
||||
The default value of CONFIG_SYS_BOOTM_LEN is 0x800000 i.e, 8MB which
|
||||
causes board reset because of larger uImage size.
|
||||
|
||||
Error log snippet:
|
||||
Booting using the fdt blob at 0x1f00000
|
||||
Loading Kernel Image ... Image too large: increase CONFIG_SYS_BOOTM_LEN
|
||||
Must RESET board to recover
|
||||
resetting ...
|
||||
|
||||
Signed-off-by: Shyam Saini <shyam.saini@amarulasolutions.com>
|
||||
---
|
||||
include/configs/rk3288_common.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/include/configs/rk3288_common.h b/include/configs/rk3288_common.h
|
||||
index 72a54bc0ab..eab7cf4d86 100644
|
||||
--- a/include/configs/rk3288_common.h
|
||||
+++ b/include/configs/rk3288_common.h
|
||||
@@ -9,6 +9,8 @@
|
||||
#include <asm/arch/hardware.h>
|
||||
#include "rockchip-common.h"
|
||||
|
||||
+#define CONFIG_SYS_BOOTM_LEN (16 << 20) /* 16MB */
|
||||
+
|
||||
#define CONFIG_SKIP_LOWLEVEL_INIT_ONLY
|
||||
#define CONFIG_SYS_MALLOC_LEN (32 << 20)
|
||||
#define CONFIG_SYS_CBSIZE 1024
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
From f9df4186c17d686f1ca38f973d7a3a49e8e37c01 Mon Sep 17 00:00:00 2001
|
||||
From: Dirk Mueller <dmueller@suse.com>
|
||||
Date: Tue, 14 Jan 2020 18:53:41 +0100
|
||||
Subject: [PATCH] scripts/dtc: Remove redundant YYLOC global declaration
|
||||
|
||||
gcc 10 will default to -fno-common, which causes this error at link
|
||||
time:
|
||||
|
||||
(.text+0x0): multiple definition of `yylloc'; dtc-lexer.lex.o (symbol from plugin):(.text+0x0): first defined here
|
||||
|
||||
This is because both dtc-lexer as well as dtc-parser define the same
|
||||
global symbol yyloc. Before with -fcommon those were merged into one
|
||||
defintion. The proper solution would be to to mark this as "extern",
|
||||
however that leads to:
|
||||
|
||||
dtc-lexer.l:26:16: error: redundant redeclaration of 'yylloc' [-Werror=redundant-decls]
|
||||
26 | extern YYLTYPE yylloc;
|
||||
| ^~~~~~
|
||||
In file included from dtc-lexer.l:24:
|
||||
dtc-parser.tab.h:127:16: note: previous declaration of 'yylloc' was here
|
||||
127 | extern YYLTYPE yylloc;
|
||||
| ^~~~~~
|
||||
cc1: all warnings being treated as errors
|
||||
|
||||
which means the declaration is completely redundant and can just be
|
||||
dropped.
|
||||
|
||||
Signed-off-by: Dirk Mueller <dmueller@suse.com>
|
||||
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
|
||||
[robh: cherry-pick from upstream]
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Rob Herring <robh@kernel.org>
|
||||
Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
|
||||
---
|
||||
scripts/dtc/dtc-lexer.l | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
|
||||
index 06c040902444..d1b3810156c7 100644
|
||||
--- a/scripts/dtc/dtc-lexer.l
|
||||
+++ b/scripts/dtc/dtc-lexer.l
|
||||
@@ -38,7 +38,6 @@ LINECOMMENT "//".*\n
|
||||
#include "srcpos.h"
|
||||
#include "dtc-parser.tab.h"
|
||||
|
||||
-YYLTYPE yylloc;
|
||||
extern bool treesource_error;
|
||||
|
||||
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
mkdir -p ${TARGET_DIR}/lib/firmware
|
||||
cp -f ${BUILD_DIR}/linux-custom/firmware/ppfe/* ${TARGET_DIR}/lib/firmware/
|
||||
cp -f ${BUILD_DIR}/linux-custom/br2-ucls1012a.its ${BINARIES_DIR}/
|
||||
@@ -3,18 +3,17 @@ ARM software simulator of the AArch64 architecture.
|
||||
|
||||
First, one has to download the AArch64 software simulator from:
|
||||
|
||||
https://silver.arm.com/download/download.tm?pv=4807186
|
||||
https://silver.arm.com/download/download.tm?pv=2663527
|
||||
|
||||
Then, use the arm_foundationv8_defconfig configuration to build your
|
||||
Buildroot system.
|
||||
|
||||
Finally, boot your system with:
|
||||
|
||||
${LOCATION_OF_FOUNDATIONV8_SIMULATOR}/models/Linux64_GCC-6.4/Foundation_Platform \
|
||||
${LOCATION_OF_FOUNDATIONV8_SIMULATOR}/models/Linux64_GCC-4.7/Foundation_Platform \
|
||||
--image output/images/linux-system.axf \
|
||||
--block-device output/images/rootfs.ext2 \
|
||||
--network=nat \
|
||||
--cores 4
|
||||
--network=nat
|
||||
|
||||
You can get network access from within the simulated environment
|
||||
by requesting an IP address using DHCP (run the command 'udhcpc').
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
label stm32mp157c-dk2-buildroot
|
||||
kernel /boot/zImage
|
||||
devicetree /boot/stm32mp157a-dhcor-avenger96.dtb
|
||||
append root=/dev/mmcblk1p4 rootwait
|
||||
@@ -1,41 +0,0 @@
|
||||
Arrow Avenger96
|
||||
|
||||
Intro
|
||||
=====
|
||||
|
||||
This configuration supports the Arrow Avenger96 board:
|
||||
|
||||
https://wiki.dh-electronics.com/index.php/Avenger96
|
||||
|
||||
How to build
|
||||
============
|
||||
|
||||
$ make avenger96_defconfig
|
||||
$ make
|
||||
|
||||
How to write the microSD card
|
||||
=============================
|
||||
|
||||
WARNING! This will destroy all the card content. Use with care!
|
||||
|
||||
Once the build process is finished you will have an image called
|
||||
"sdcard.img" in the output/images/ directory.
|
||||
|
||||
Copy the bootable "sdcard.img" onto an microSD card with "dd":
|
||||
|
||||
$ sudo dd if=output/images/sdcard.img of=/dev/sdX
|
||||
|
||||
Boot the board
|
||||
==============
|
||||
|
||||
(1) Configure the boot switches for boot from microsd: 1-0-1
|
||||
|
||||
(2) Insert the microSD card in the slot
|
||||
|
||||
(3) Plug a serial adapter (beware: 1v8 levels!) to the low speed
|
||||
expansion connector
|
||||
|
||||
(4) Plug in power cable
|
||||
|
||||
(5) The system will start, with the console on UART, but also visible
|
||||
on the screen.
|
||||
@@ -1,4 +1,4 @@
|
||||
label Tinker linux
|
||||
label Tinker linux-next
|
||||
kernel /boot/uImage
|
||||
devicetree /boot/rk3288-tinker.dtb
|
||||
append console=ttyS2,115200n8 root=/dev/mmcblk0p1 rootwait
|
||||
|
||||
@@ -2,19 +2,12 @@ image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition u-boot-tpl-spl-dtb {
|
||||
partition u-boot-spl-dtb {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot-tpl-spl-dtb.img"
|
||||
image = "u-boot-spl-dtb.img"
|
||||
offset = 32K
|
||||
}
|
||||
|
||||
partition u-boot-dtb {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot-dtb.img"
|
||||
offset = 8M
|
||||
size = 30M
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
From 8ee2b03039cccf64402a72dea2185d7fe1972729 Mon Sep 17 00:00:00 2001
|
||||
From: Shyam Saini <shyam.saini@amarulasolutions.com>
|
||||
Date: Mon, 15 Apr 2019 16:16:16 +0530
|
||||
Subject: [PATCH] include: configs: Increase CONFIG_SYS_BOOTM_LEN to 16MB
|
||||
|
||||
The default value of CONFIG_SYS_BOOTM_LEN is 0x800000 i.e, 8MB which
|
||||
causes board reset because of larger uImage size.
|
||||
|
||||
Error log snippet:
|
||||
Booting using the fdt blob at 0x1f00000
|
||||
Loading Kernel Image ... Image too large: increase CONFIG_SYS_BOOTM_LEN
|
||||
Must RESET board to recover
|
||||
resetting ...
|
||||
|
||||
Signed-off-by: Shyam Saini <shyam.saini@amarulasolutions.com>
|
||||
---
|
||||
include/configs/rk3288_common.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/include/configs/rk3288_common.h b/include/configs/rk3288_common.h
|
||||
index 72a54bc0ab..eab7cf4d86 100644
|
||||
--- a/include/configs/rk3288_common.h
|
||||
+++ b/include/configs/rk3288_common.h
|
||||
@@ -9,6 +9,8 @@
|
||||
#include <asm/arch/hardware.h>
|
||||
#include "rockchip-common.h"
|
||||
|
||||
+#define CONFIG_SYS_BOOTM_LEN (16 << 20) /* 16MB */
|
||||
+
|
||||
#define CONFIG_SKIP_LOWLEVEL_INIT_ONLY
|
||||
#define CONFIG_SYS_MALLOC_LEN (32 << 20)
|
||||
#define CONFIG_SYS_CBSIZE 1024
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
MKIMAGE=$HOST_DIR/bin/mkimage
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
|
||||
$MKIMAGE -n rk3288 -T rksd -d $BINARIES_DIR/u-boot-tpl.bin $BINARIES_DIR/u-boot-tpl.img
|
||||
cat $BINARIES_DIR/u-boot-tpl.img $BINARIES_DIR/u-boot-spl-dtb.bin > $BINARIES_DIR/u-boot-tpl-spl-dtb.img
|
||||
$MKIMAGE -n rk3288 -T rksd -d $BINARIES_DIR/u-boot-spl-dtb.bin $BINARIES_DIR/u-boot-spl-dtb.img
|
||||
cat $BINARIES_DIR/u-boot-dtb.bin >> $BINARIES_DIR/u-boot-spl-dtb.img
|
||||
|
||||
install -m 0644 -D $BOARD_DIR/extlinux.conf $TARGET_DIR/boot/extlinux/extlinux.conf
|
||||
|
||||
@@ -17,7 +17,6 @@ image boot.vfat {
|
||||
image = "uboot-env.bin"
|
||||
}
|
||||
}
|
||||
|
||||
size = 16M
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
This document explains how to set up a basic Buildroot system on
|
||||
various Atmel/Microchip boards. Additional details can also be found
|
||||
on the Linux4SAM website: http://www.linux4sam.org
|
||||
This document explains how to set up a basic Buildroot system on various
|
||||
Atmel boards. Additional details can also be found on the Linux4SAM website:
|
||||
http://www.at91.com/linux4sam/bin/view/Linux4SAM/
|
||||
|
||||
This guide covers the following configurations:
|
||||
- at91sam9g45m10ek_defconfig
|
||||
@@ -19,14 +19,6 @@ This guide covers the following configurations:
|
||||
- atmel_sama5d4_xplained_mmc_dev_defconfig
|
||||
- atmel_sama5d2_xplained_mmc_defconfig
|
||||
- atmel_sama5d2_xplained_mmc_dev_defconfig
|
||||
- microchip_sama5d27_wlsom1_ek_mmc_defconfig
|
||||
- microchip_sama5d27_wlsom1_ek_mmc_dev_defconfig
|
||||
- microchip_sam9x60ek_mmc_defconfig
|
||||
- microchip_sam9x60ek_mmc_dev_defconfig
|
||||
- microchip_sama5d2_icp_mmc_defconfig
|
||||
- microchip_sama5d2_icp_mmc_dev_defconfig
|
||||
- microchip_sama7g5ek_mmc_defconfig
|
||||
- microchip_sama7g5ek_mmc_dev_defconfig
|
||||
|
||||
These configurations will use AT91Bootstrap, u-boot and a linux kernel from
|
||||
the git trees maintained by Atmel.
|
||||
@@ -37,23 +29,23 @@ tests the features of the SoC:
|
||||
- FFMPEG to record video from the ISI/ISC
|
||||
- I2C, SPI, CAN, etc. tools
|
||||
- modetest for LCD screens, HDMI
|
||||
- Wilc1000/Wilc3000 firmware for the Atmel Wireless sdio module
|
||||
- Wilc1000 firmware for the Atmel Wireless sdio module
|
||||
- SSH for convenience
|
||||
- GDB/GDB server for debug
|
||||
|
||||
Configuring and building Buildroot
|
||||
==================================
|
||||
|
||||
For the Xplained/Evaluation Kit boards, the Buildroot configuration is
|
||||
provided to boot from an SD card. Those configurations are labeled as
|
||||
'mmc'. In this case, after building Buildroot, follow the instructions
|
||||
in the "Preparing the SD card" section.
|
||||
|
||||
For the other configurations listed above, the Buildroot configuration
|
||||
For most configurations listed above, the Buildroot configuration
|
||||
assumes the system will be flashed on NAND. In this case, after
|
||||
building Buildroot, follow the instructions in the "Flashing the NAND
|
||||
using SAM-BA" section below.
|
||||
|
||||
For the Xplained boards, an alternative Buildroot configuration is
|
||||
provided to boot from an SD card. Those configurations are labeled as
|
||||
'mmc'. In this case, after building Buildroot, follow the instructions
|
||||
in the "Preparing the SD card" section.
|
||||
|
||||
To configure and build Buildroot, run:
|
||||
|
||||
make <board>_defconfig
|
||||
@@ -152,10 +144,10 @@ lost. To copy the image on the SD card:
|
||||
|
||||
dd if=output/images/sdcard.img of=/dev/mmcblk0
|
||||
|
||||
Insert your SD card in your Xplained/Evaluation Kit board, and
|
||||
enjoy. The default U-Boot environment will load properly the kernel
|
||||
and Device Tree blob from the first partition of the SD card, so
|
||||
everything works automatically.
|
||||
Insert your SD card in your Xplained board, and enjoy. The default
|
||||
U-Boot environment will load properly the kernel and Device Tree blob
|
||||
from the first partition of the SD card, so everything works
|
||||
automatically.
|
||||
|
||||
By default a 16MB FAT partition is created. It contains at91bootstrap,
|
||||
u-boot, the kernel image and all dtb variants for your board. The dtb
|
||||
|
||||
@@ -9,7 +9,6 @@ image boot.vfat {
|
||||
"u-boot.bin"
|
||||
}
|
||||
}
|
||||
|
||||
size = 16M
|
||||
}
|
||||
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
# Image for SD card boot on Microchip SAMA5D27 WLSOM1 EK
|
||||
#
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"zImage",
|
||||
"at91-sama5d27_wlsom1_ek.dtb",
|
||||
"boot.bin",
|
||||
"u-boot.bin"
|
||||
}
|
||||
}
|
||||
|
||||
size = 16M
|
||||
}
|
||||
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition boot {
|
||||
partition-type = 0xC
|
||||
bootable = "true"
|
||||
image = "boot.vfat"
|
||||
offset = 1M
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
size = 512M
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,6 @@ image boot.vfat {
|
||||
"u-boot.bin"
|
||||
}
|
||||
}
|
||||
|
||||
size = 16M
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,6 @@ image boot.vfat {
|
||||
"u-boot.bin"
|
||||
}
|
||||
}
|
||||
|
||||
size = 16M
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,6 @@ image boot.vfat {
|
||||
"u-boot.bin"
|
||||
}
|
||||
}
|
||||
|
||||
size = 16M
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@ image boot.vfat {
|
||||
"boot.scr"
|
||||
}
|
||||
}
|
||||
|
||||
size = 64M
|
||||
}
|
||||
|
||||
@@ -17,8 +16,8 @@ image sdcard.img {
|
||||
partition u-boot {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot-sunxi-with-spl.bin"
|
||||
offset = 8K
|
||||
size = 1016K # 1MB - 8KB
|
||||
offset = 8192
|
||||
size = 1040384 # 1MB - 8192
|
||||
}
|
||||
|
||||
partition boot {
|
||||
|
||||
@@ -6,7 +6,6 @@ image boot.vfat {
|
||||
"boot.scr"
|
||||
}
|
||||
}
|
||||
|
||||
size = 64M
|
||||
}
|
||||
|
||||
@@ -17,8 +16,8 @@ image sdcard.img {
|
||||
partition u-boot {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot-sunxi-with-spl.bin"
|
||||
offset = 8K
|
||||
size = 1016K # 1MB - 8KB
|
||||
offset = 8192
|
||||
size = 1040384 # 1MB - 8192
|
||||
}
|
||||
|
||||
partition boot {
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait
|
||||
|
||||
mmc dev 0
|
||||
fatload mmc 0 $kernel_addr_r zImage
|
||||
fatload mmc 0 $fdt_addr_r sun8i-h2-plus-bananapi-m2-zero.dtb
|
||||
|
||||
bootz $kernel_addr_r - $fdt_addr_r
|
||||
@@ -1,34 +0,0 @@
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"zImage",
|
||||
"sun8i-h2-plus-bananapi-m2-zero.dtb",
|
||||
"boot.scr"
|
||||
}
|
||||
}
|
||||
|
||||
size = 64M
|
||||
}
|
||||
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition u-boot {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot-sunxi-with-spl.bin"
|
||||
offset = 8K
|
||||
size = 1016K # 1MB - 8KB
|
||||
}
|
||||
|
||||
partition boot {
|
||||
partition-type = 0xC
|
||||
bootable = "true"
|
||||
image = "boot.vfat"
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
}
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
Intro
|
||||
=====
|
||||
|
||||
This default configuration will allow you to start experimenting with the
|
||||
Buildroot environment for the Bananapi M2 Zero. With the current configuration
|
||||
it will bring-up the board, and allow access through the serial console.
|
||||
|
||||
Bananapi M2 Zero link:
|
||||
http://www.banana-pi.org/m2z.html
|
||||
|
||||
This configuration uses U-Boot mainline and kernel mainline.
|
||||
|
||||
How to build
|
||||
============
|
||||
|
||||
$ make bananapi_m2_zero_defconfig
|
||||
$ make
|
||||
|
||||
Note: you will need access to the internet to download the required
|
||||
sources.
|
||||
|
||||
How to write the SD card
|
||||
========================
|
||||
|
||||
Once the build process is finished you will have an image called "sdcard.img"
|
||||
in the output/images/ directory.
|
||||
|
||||
Copy the bootable "sdcard.img" onto an SD card with "dd":
|
||||
|
||||
$ sudo dd if=output/images/sdcard.img of=/dev/sdX
|
||||
$ sync
|
||||
|
||||
Insert the micro SDcard in your Bananapi M2 Zero and power it up. The console
|
||||
is on the Debug UART on the CON3 header, with serial settings 115200 8N1.
|
||||
@@ -6,7 +6,6 @@ image boot.vfat {
|
||||
"boot.scr"
|
||||
}
|
||||
}
|
||||
|
||||
size = 64M
|
||||
}
|
||||
|
||||
@@ -17,14 +16,14 @@ image sdcard.img {
|
||||
partition spl {
|
||||
in-partition-table = "no"
|
||||
image = "sunxi-spl.bin"
|
||||
offset = 8K
|
||||
offset = 8192
|
||||
}
|
||||
|
||||
partition u-boot {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot.itb"
|
||||
offset = 40K
|
||||
size = 1M # 1MB - 40KB
|
||||
size = 1M # 1MB - 40K
|
||||
}
|
||||
|
||||
partition boot {
|
||||
|
||||
@@ -5,7 +5,6 @@ image boot.vfat {
|
||||
"u-boot.img"
|
||||
}
|
||||
}
|
||||
|
||||
size = 4M
|
||||
}
|
||||
|
||||
@@ -16,7 +15,7 @@ image sdcard.img {
|
||||
partition u-boot {
|
||||
partition-type = 0xC
|
||||
bootable = "true"
|
||||
image = "boot.vfat"
|
||||
image = "boot.vfat"
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
|
||||
@@ -10,10 +10,8 @@ image boot.vfat {
|
||||
"am335x-bone.dtb",
|
||||
"am335x-boneblack.dtb",
|
||||
"am335x-bonegreen.dtb",
|
||||
"am335x-boneblack-wireless.dtb",
|
||||
}
|
||||
}
|
||||
|
||||
size = 16M
|
||||
}
|
||||
|
||||
@@ -24,7 +22,7 @@ image sdcard.img {
|
||||
partition u-boot {
|
||||
partition-type = 0xC
|
||||
bootable = "true"
|
||||
image = "boot.vfat"
|
||||
image = "boot.vfat"
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
|
||||
32
board/beaglebone/genimage_linux41.cfg
Normal file
32
board/beaglebone/genimage_linux41.cfg
Normal file
@@ -0,0 +1,32 @@
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"MLO",
|
||||
"u-boot.img",
|
||||
"zImage",
|
||||
"uEnv.txt",
|
||||
"am335x-evm.dtb",
|
||||
"am335x-evmsk.dtb",
|
||||
"am335x-bone.dtb",
|
||||
"am335x-boneblack.dtb",
|
||||
}
|
||||
}
|
||||
size = 16M
|
||||
}
|
||||
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition u-boot {
|
||||
partition-type = 0xC
|
||||
bootable = "true"
|
||||
image = "boot.vfat"
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
size = 512M
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,7 @@ Description
|
||||
This configuration will build a complete image for the beaglebone and
|
||||
the TI AM335x-EVM, the board type is identified by the on-board
|
||||
EEPROM. The configuration is based on the
|
||||
ti-processor-sdk-06.01.00.08. Device tree blobs for beaglebone
|
||||
ti-processor-sdk-02.00.00.00. Device tree blobs for beaglebone
|
||||
variants and the evm-sk are built too.
|
||||
|
||||
For Qt5 support support use the beaglebone_qt5_defconfig.
|
||||
@@ -43,20 +43,10 @@ output/images/
|
||||
To copy the image file to the sdcard use dd:
|
||||
$ dd if=output/images/sdcard.img of=/dev/XXX
|
||||
|
||||
|
||||
Running Qt5 hellowindow opengl demo:
|
||||
===================
|
||||
# export QT_QPA_EGLFS_KMS_CONFIG=/etc/qt5/eglfs_kms_cfg.json
|
||||
# export QT_QPA_PLATFORM=eglfs
|
||||
# export QT_QPA_EGLFS_INTEGRATION=none
|
||||
# /usr/lib/qt/examples/opengl/hellowindow/hellowindow
|
||||
|
||||
|
||||
Tested hardware
|
||||
===============
|
||||
am335x-evm (rev. 1.1A)
|
||||
beagleboneblack (rev. A5A)
|
||||
beaglebone (rev. A6)
|
||||
|
||||
2020, Adam Duskett <aduskett@gmail.com>
|
||||
2016, Lothar Felten <lothar.felten@gmail.com>
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"device": "/dev/dri/card0",
|
||||
"hwcursor": false,
|
||||
"pbuffers": true,
|
||||
"outputs": [
|
||||
{
|
||||
"name": "VGA1",
|
||||
"mode": "off"
|
||||
},
|
||||
{
|
||||
"name": "HDMI1",
|
||||
"mode": "1024x768"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -8,7 +8,6 @@ image boot.vfat {
|
||||
"uEnv.txt"
|
||||
}
|
||||
}
|
||||
|
||||
size = 16M
|
||||
}
|
||||
|
||||
|
||||
1783
board/beagleboneai/patches/uboot/0001-BeagleBone-AI-support.patch
Normal file
1783
board/beagleboneai/patches/uboot/0001-BeagleBone-AI-support.patch
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,839 +0,0 @@
|
||||
From 702ea30b462ba06f4fbee3393f0e6c19531f1e5f Mon Sep 17 00:00:00 2001
|
||||
From: Robert Nelson <robertcnelson@gmail.com>
|
||||
Date: Fri, 25 Jun 2021 11:33:25 -0500
|
||||
Subject: [PATCH] am57xx_evm-fixes
|
||||
|
||||
Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
|
||||
[Patch from https://github.com/beagleboard/u-boot/commit/702ea30b462ba06f4fbee3393f0e6c19531f1e5f]
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
---
|
||||
arch/arm/mach-omap2/omap5/hw_data.c | 1 +
|
||||
board/ti/am57xx/board.c | 167 +++++++++++-
|
||||
configs/am57xx_evm_defconfig | 15 +-
|
||||
include/configs/ti_armv7_common.h | 407 ++++++++++++++++++++++++++++
|
||||
include/configs/ti_omap5_common.h | 5 +
|
||||
include/environment/ti/boot.h | 32 ++-
|
||||
include/environment/ti/mmc.h | 49 +++-
|
||||
7 files changed, 651 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/omap5/hw_data.c b/arch/arm/mach-omap2/omap5/hw_data.c
|
||||
index fa4e27063c..d5192b1671 100644
|
||||
--- a/arch/arm/mach-omap2/omap5/hw_data.c
|
||||
+++ b/arch/arm/mach-omap2/omap5/hw_data.c
|
||||
@@ -421,6 +421,7 @@ void enable_basic_clocks(void)
|
||||
(*prcm)->cm_l4per_uart1_clkctrl,
|
||||
(*prcm)->cm_l4per_uart3_clkctrl,
|
||||
(*prcm)->cm_l4per_i2c1_clkctrl,
|
||||
+ (*prcm)->cm_l4per_i2c4_clkctrl,
|
||||
#ifdef CONFIG_DRIVER_TI_CPSW
|
||||
(*prcm)->cm_gmac_gmac_clkctrl,
|
||||
#endif
|
||||
diff --git a/board/ti/am57xx/board.c b/board/ti/am57xx/board.c
|
||||
index 73063faee6..ad05c41f22 100644
|
||||
--- a/board/ti/am57xx/board.c
|
||||
+++ b/board/ti/am57xx/board.c
|
||||
@@ -41,6 +41,7 @@
|
||||
#include <mmc.h>
|
||||
#include <dm/uclass.h>
|
||||
#include <hang.h>
|
||||
+#include <i2c.h>
|
||||
|
||||
#include "../common/board_detect.h"
|
||||
#include "mux_data.h"
|
||||
@@ -528,8 +529,10 @@ void do_board_detect(void)
|
||||
|
||||
rc = ti_i2c_eeprom_am_get(CONFIG_EEPROM_BUS_ADDRESS,
|
||||
CONFIG_EEPROM_CHIP_ADDRESS);
|
||||
- if (rc)
|
||||
+ if (rc) {
|
||||
printf("ti_i2c_eeprom_init failed %d\n", rc);
|
||||
+ ti_i2c_eeprom_am_set("BBONE-AI", "A");
|
||||
+ };
|
||||
|
||||
#ifdef CONFIG_SUPPORT_EMMC_BOOT
|
||||
rc = board_bootmode_has_emmc();
|
||||
@@ -579,6 +582,164 @@ void do_board_detect(void)
|
||||
"Board: %s REV %s\n", bname, board_ti_get_rev());
|
||||
}
|
||||
|
||||
+struct am335x_cape_eeprom_id {
|
||||
+ unsigned int header;
|
||||
+ char eeprom_rev[2];
|
||||
+ char board_name[32];
|
||||
+ char version[4];
|
||||
+ char manufacture[16];
|
||||
+ char part_number[16];
|
||||
+ char number_of_pins[2];
|
||||
+ char serial_number[12];
|
||||
+ char pin_usage[140];
|
||||
+ char vdd_3v3exp[ 2];
|
||||
+ char vdd_5v[ 2];
|
||||
+ char sys_5v[2];
|
||||
+ char dc_supplied[2];
|
||||
+};
|
||||
+
|
||||
+#define CAPE_EEPROM_BUS_NUM 3
|
||||
+#define CAPE_EEPROM_ADDR0 0x54
|
||||
+#define CAPE_EEPROM_ADDR1 0x55
|
||||
+#define CAPE_EEPROM_ADDR2 0x56
|
||||
+#define CAPE_EEPROM_ADDR3 0x57
|
||||
+
|
||||
+#define CAPE_EEPROM_ADDR_LEN 0x10
|
||||
+
|
||||
+static int probe_cape_eeprom(struct am335x_cape_eeprom_id *cape_header)
|
||||
+{
|
||||
+ int ret;
|
||||
+ struct udevice *dev;
|
||||
+ unsigned char addr;
|
||||
+ /* /lib/firmware/BB-CAPE-DISP-CT4-00A0.dtbo */
|
||||
+ /* 14 + 16 + 1 + 4 + 5 = 40 */
|
||||
+ char hash_cape_overlay[40];
|
||||
+ char cape_overlay[26];
|
||||
+ char process_cape_part_number[16];
|
||||
+ char process_cape_version[4];
|
||||
+ char end_part_number;
|
||||
+ char cape_overlay_pass_to_kernel[18];
|
||||
+
|
||||
+ strlcpy(cape_overlay_pass_to_kernel, "", 1);
|
||||
+
|
||||
+ for ( addr = CAPE_EEPROM_ADDR0; addr <= CAPE_EEPROM_ADDR3; addr++ ) {
|
||||
+ ret = i2c_get_chip_for_busnum(CAPE_EEPROM_BUS_NUM, addr, 1, &dev);
|
||||
+ if (ret) {
|
||||
+ printf("BeagleBone Cape EEPROM: no EEPROM at address: 0x%x\n", addr);
|
||||
+ } else {
|
||||
+ printf("BeagleBone Cape EEPROM: found EEPROM at address: 0x%x\n", addr);
|
||||
+
|
||||
+ ret = i2c_set_chip_offset_len(dev, 2);
|
||||
+ if (ret) {
|
||||
+ printf("BeagleBone Cape EEPROM: i2c_set_chip_offset_len failure\n");
|
||||
+ }
|
||||
+
|
||||
+ ret = dm_i2c_read(dev, 0, (uchar *)cape_header, sizeof(struct am335x_cape_eeprom_id));
|
||||
+ if (ret) {
|
||||
+ printf("BeagleBone Cape EEPROM: Cannot read eeprom params\n");
|
||||
+ }
|
||||
+
|
||||
+ if (cape_header->header == 0xEE3355AA) {
|
||||
+ strlcpy(hash_cape_overlay, "/lib/firmware/", 14 + 1);
|
||||
+ strlcpy(cape_overlay, "", 2);
|
||||
+ strlcpy(cape_overlay_pass_to_kernel, "", 2);
|
||||
+ strlcpy(process_cape_part_number, "...............", 16 + 1);
|
||||
+ strlcpy(process_cape_version, "...", 4 + 1);
|
||||
+
|
||||
+ strlcpy(process_cape_part_number, cape_header->part_number, 16 + 1);
|
||||
+ printf("BeagleBone Cape EEPROM: debug part_number field:[%s]\n", process_cape_part_number);
|
||||
+
|
||||
+ //FIXME: some capes end with '.'
|
||||
+ if ( process_cape_part_number[15] == 0x2E ) {
|
||||
+ puts("debug: fixup, extra . in eeprom field\n");
|
||||
+ process_cape_part_number[15] = 0x00;
|
||||
+ if ( process_cape_part_number[14] == 0x2E ) {
|
||||
+ process_cape_part_number[14] = 0x00;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ //Find ending 0x00 or 0xFF
|
||||
+ puts("BeagleBone Cape EEPROM: debug part_number field HEX:[");
|
||||
+ end_part_number=16;
|
||||
+ for ( int i=0; i <= 16; i++ ) {
|
||||
+ if (( process_cape_part_number[i] == 0x00 ) || ( process_cape_part_number[i] == 0xFF )) {
|
||||
+ end_part_number=i;
|
||||
+ i=17;
|
||||
+ } else {
|
||||
+ printf("%x", process_cape_part_number[i]);
|
||||
+ }
|
||||
+ }
|
||||
+ puts("]\n");
|
||||
+
|
||||
+ strncat(cape_overlay_pass_to_kernel, process_cape_part_number, end_part_number);
|
||||
+ strncat(cape_overlay_pass_to_kernel, ",", 1);
|
||||
+ //printf("debug: %s\n", cape_overlay_pass_to_kernel);
|
||||
+
|
||||
+ strncat(hash_cape_overlay, process_cape_part_number, end_part_number);
|
||||
+ strncat(cape_overlay, process_cape_part_number, end_part_number);
|
||||
+ //printf("debug: %s %s\n", hash_cape_overlay, cape_overlay);
|
||||
+
|
||||
+ strncat(hash_cape_overlay, "-", 1);
|
||||
+ strncat(cape_overlay, "-", 1);
|
||||
+ //printf("debug: %s %s\n", hash_cape_overlay, cape_overlay);
|
||||
+
|
||||
+ strlcpy(process_cape_version, cape_header->version, 4 + 1);
|
||||
+ //printf("debug: version field:[%s]\n", process_cape_version);
|
||||
+
|
||||
+ //Find invalid 0xFF -> 0x30 BBAI FAN Cape...
|
||||
+ puts("BeagleBone Cape EEPROM: debug version field HEX:[");
|
||||
+ for ( int i=0; i <= 3; i++ ) {
|
||||
+ printf("%x", process_cape_version[i]);
|
||||
+ if ( process_cape_version[i] == 0xFF ) {
|
||||
+ process_cape_version[i] = 0x30;
|
||||
+ }
|
||||
+ }
|
||||
+ puts("]\n");
|
||||
+
|
||||
+ strncat(hash_cape_overlay, process_cape_version, 4);
|
||||
+ strncat(cape_overlay, process_cape_version, 4);
|
||||
+ //printf("debug: %s %s\n", hash_cape_overlay, cape_overlay);
|
||||
+
|
||||
+ strncat(hash_cape_overlay, ".dtbo", 5);
|
||||
+ strncat(cape_overlay, ".dtbo", 5);
|
||||
+ //printf("debug: %s %s\n", hash_cape_overlay, cape_overlay);
|
||||
+
|
||||
+ printf("BeagleBone Cape EEPROM: 0x%x %s\n", addr, cape_overlay);
|
||||
+
|
||||
+ switch(addr) {
|
||||
+ case CAPE_EEPROM_ADDR0:
|
||||
+ env_set("uboot_overlay_addr0", cape_overlay);
|
||||
+ env_set("uboot_detected_capes_addr0", cape_overlay_pass_to_kernel);
|
||||
+ break;
|
||||
+ case CAPE_EEPROM_ADDR1:
|
||||
+ env_set("uboot_overlay_addr1", cape_overlay);
|
||||
+ env_set("uboot_detected_capes_addr1", cape_overlay_pass_to_kernel);
|
||||
+ break;
|
||||
+ case CAPE_EEPROM_ADDR2:
|
||||
+ env_set("uboot_overlay_addr2", cape_overlay);
|
||||
+ env_set("uboot_detected_capes_addr2", cape_overlay_pass_to_kernel);
|
||||
+ break;
|
||||
+ case CAPE_EEPROM_ADDR3:
|
||||
+ env_set("uboot_overlay_addr3", cape_overlay);
|
||||
+ env_set("uboot_detected_capes_addr3", cape_overlay_pass_to_kernel);
|
||||
+ break;
|
||||
+ }
|
||||
+ env_set("uboot_detected_capes", "1");
|
||||
+ } else {
|
||||
+ printf("BeagleBone Cape EEPROM: EEPROM contents not valid (or blank) on address: 0x%x\n", addr);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+void do_cape_detect(void)
|
||||
+{
|
||||
+ struct am335x_cape_eeprom_id cape_header;
|
||||
+
|
||||
+ probe_cape_eeprom(&cape_header);
|
||||
+}
|
||||
+
|
||||
static void setup_board_eeprom_env(void)
|
||||
{
|
||||
char *name = "beagle_x15";
|
||||
@@ -782,8 +943,10 @@ int board_late_init(void)
|
||||
/* Just probe the potentially supported cdce913 device */
|
||||
uclass_get_device(UCLASS_CLK, 0, &dev);
|
||||
|
||||
- if (board_is_bbai())
|
||||
+ if (board_is_bbai()) {
|
||||
env_set("console", "ttyS0,115200n8");
|
||||
+ do_cape_detect();
|
||||
+ }
|
||||
|
||||
#if !defined(CONFIG_SPL_BUILD)
|
||||
board_ti_set_ethaddr(2);
|
||||
diff --git a/configs/am57xx_evm_defconfig b/configs/am57xx_evm_defconfig
|
||||
index 4da4aaa1c7..ed5b8aec16 100644
|
||||
--- a/configs/am57xx_evm_defconfig
|
||||
+++ b/configs/am57xx_evm_defconfig
|
||||
@@ -10,16 +10,20 @@ CONFIG_SPL_TEXT_BASE=0x40300000
|
||||
CONFIG_OMAP54XX=y
|
||||
CONFIG_TARGET_AM57XX_EVM=y
|
||||
CONFIG_SPL=y
|
||||
-CONFIG_ENV_OFFSET_REDUND=0x280000
|
||||
CONFIG_SPL_SPI_FLASH_SUPPORT=y
|
||||
CONFIG_SPL_SPI_SUPPORT=y
|
||||
CONFIG_ARMV7_LPAE=y
|
||||
-CONFIG_DEFAULT_DEVICE_TREE="am572x-idk"
|
||||
+CONFIG_DEFAULT_DEVICE_TREE="am57xx-beagle-x15-revc"
|
||||
CONFIG_AHCI=y
|
||||
CONFIG_DISTRO_DEFAULTS=y
|
||||
CONFIG_SPL_LOAD_FIT=y
|
||||
# CONFIG_USE_SPL_FIT_GENERATOR is not set
|
||||
CONFIG_OF_BOARD_SETUP=y
|
||||
+CONFIG_BOOTDELAY=1
|
||||
+CONFIG_AUTOBOOT_KEYED=y
|
||||
+CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n"
|
||||
+CONFIG_AUTOBOOT_DELAY_STR="d"
|
||||
+CONFIG_AUTOBOOT_STOP_STR=" "
|
||||
CONFIG_USE_BOOTARGS=y
|
||||
CONFIG_BOOTARGS="androidboot.serialno=${serial#} console=ttyS2,115200 androidboot.console=ttyS2 androidboot.hardware=beagle_x15board"
|
||||
# CONFIG_USE_BOOTCOMMAND is not set
|
||||
@@ -48,13 +52,12 @@ CONFIG_BOOTP_DNS2=y
|
||||
CONFIG_CMD_AVB=y
|
||||
CONFIG_OF_CONTROL=y
|
||||
CONFIG_SPL_OF_CONTROL=y
|
||||
-CONFIG_OF_LIST="am57xx-beagle-x15 am57xx-beagle-x15-revb1 am57xx-beagle-x15-revc am5729-beagleboneai am572x-idk am571x-idk am574x-idk"
|
||||
+CONFIG_OF_LIST="am57xx-beagle-x15 am57xx-beagle-x15-revb1 am57xx-beagle-x15-revc am5729-beagleboneai"
|
||||
CONFIG_ENV_OVERWRITE=y
|
||||
-CONFIG_ENV_IS_IN_MMC=y
|
||||
-CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
|
||||
+# CONFIG_ENV_IS_IN_FAT is not set
|
||||
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
-CONFIG_SYS_MMC_ENV_DEV=1
|
||||
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
|
||||
+# CONFIG_SPL_ENV_IS_NOWHERE is not set
|
||||
CONFIG_VERSION_VARIABLE=y
|
||||
CONFIG_BOOTP_SEND_HOSTNAME=y
|
||||
CONFIG_DM=y
|
||||
diff --git a/include/configs/ti_armv7_common.h b/include/configs/ti_armv7_common.h
|
||||
index f13e9e5264..eabd03e27d 100644
|
||||
--- a/include/configs/ti_armv7_common.h
|
||||
+++ b/include/configs/ti_armv7_common.h
|
||||
@@ -92,6 +92,413 @@
|
||||
#define CONFIG_SYS_I2C
|
||||
#endif
|
||||
|
||||
+#define EEPROM_PROGRAMMING \
|
||||
+ "eeprom_dump=i2c dev 0; " \
|
||||
+ "i2c md 0x50 0x00.2 20; " \
|
||||
+ "\0" \
|
||||
+ "eeprom_blank=i2c dev 0; " \
|
||||
+ "i2c mw 0x50 0x00.2 ff; " \
|
||||
+ "i2c mw 0x50 0x01.2 ff; " \
|
||||
+ "i2c mw 0x50 0x02.2 ff; " \
|
||||
+ "i2c mw 0x50 0x03.2 ff; " \
|
||||
+ "i2c mw 0x50 0x04.2 ff; " \
|
||||
+ "i2c mw 0x50 0x05.2 ff; " \
|
||||
+ "i2c mw 0x50 0x06.2 ff; " \
|
||||
+ "i2c mw 0x50 0x07.2 ff; " \
|
||||
+ "i2c mw 0x50 0x08.2 ff; " \
|
||||
+ "i2c mw 0x50 0x09.2 ff; " \
|
||||
+ "i2c mw 0x50 0x0a.2 ff; " \
|
||||
+ "i2c mw 0x50 0x0b.2 ff; " \
|
||||
+ "i2c mw 0x50 0x0c.2 ff; " \
|
||||
+ "i2c mw 0x50 0x0d.2 ff; " \
|
||||
+ "i2c mw 0x50 0x0e.2 ff; " \
|
||||
+ "i2c mw 0x50 0x0f.2 ff; " \
|
||||
+ "i2c mw 0x50 0x10.2 ff; " \
|
||||
+ "i2c mw 0x50 0x11.2 ff; " \
|
||||
+ "i2c mw 0x50 0x12.2 ff; " \
|
||||
+ "i2c mw 0x50 0x13.2 ff; " \
|
||||
+ "i2c mw 0x50 0x14.2 ff; " \
|
||||
+ "i2c mw 0x50 0x15.2 ff; " \
|
||||
+ "i2c mw 0x50 0x16.2 ff; " \
|
||||
+ "i2c mw 0x50 0x17.2 ff; " \
|
||||
+ "i2c mw 0x50 0x18.2 ff; " \
|
||||
+ "i2c mw 0x50 0x19.2 ff; " \
|
||||
+ "i2c mw 0x50 0x1a.2 ff; " \
|
||||
+ "i2c mw 0x50 0x1b.2 ff; " \
|
||||
+ "i2c mw 0x50 0x1c.2 ff; " \
|
||||
+ "i2c mw 0x50 0x1d.2 ff; " \
|
||||
+ "i2c mw 0x50 0x1e.2 ff; " \
|
||||
+ "i2c mw 0x50 0x1f.2 ff; " \
|
||||
+ "i2c md 0x50 0x00.2 20; " \
|
||||
+ "\0" \
|
||||
+ "eeprom_x15_b1=i2c dev 0; " \
|
||||
+ "i2c mw 0x50 0x00.2 aa; " \
|
||||
+ "i2c mw 0x50 0x01.2 55; " \
|
||||
+ "i2c mw 0x50 0x02.2 33; " \
|
||||
+ "i2c mw 0x50 0x03.2 ee; " \
|
||||
+ "i2c mw 0x50 0x04.2 42; " \
|
||||
+ "i2c mw 0x50 0x05.2 42; " \
|
||||
+ "i2c mw 0x50 0x06.2 52; " \
|
||||
+ "i2c mw 0x50 0x07.2 44; " \
|
||||
+ "i2c mw 0x50 0x08.2 58; " \
|
||||
+ "i2c mw 0x50 0x09.2 31; " \
|
||||
+ "i2c mw 0x50 0x0a.2 35; " \
|
||||
+ "i2c mw 0x50 0x0b.2 5f; " \
|
||||
+ "i2c mw 0x50 0x0c.2 42; " \
|
||||
+ "i2c mw 0x50 0x0d.2 2e; " \
|
||||
+ "i2c mw 0x50 0x0e.2 31; " \
|
||||
+ "i2c mw 0x50 0x0f.2 30; " \
|
||||
+ "i2c mw 0x50 0x10.2 57; " \
|
||||
+ "i2c mw 0x50 0x11.2 57; " \
|
||||
+ "i2c mw 0x50 0x12.2 59; " \
|
||||
+ "i2c mw 0x50 0x13.2 59; " \
|
||||
+ "i2c mw 0x50 0x14.2 34; " \
|
||||
+ "i2c mw 0x50 0x15.2 50; " \
|
||||
+ "i2c mw 0x50 0x16.2 35; " \
|
||||
+ "i2c mw 0x50 0x17.2 35; " \
|
||||
+ "i2c mw 0x50 0x18.2 30; " \
|
||||
+ "i2c mw 0x50 0x19.2 30; " \
|
||||
+ "i2c mw 0x50 0x1a.2 30; " \
|
||||
+ "i2c mw 0x50 0x1b.2 30; " \
|
||||
+ "i2c mw 0x50 0x1c.2 ff; " \
|
||||
+ "i2c mw 0x50 0x1d.2 ff; " \
|
||||
+ "i2c mw 0x50 0x1e.2 ff; " \
|
||||
+ "i2c mw 0x50 0x1f.2 ff; " \
|
||||
+ "i2c md 0x50 0x00.2 20; " \
|
||||
+ "\0" \
|
||||
+ "eeprom_x15_c=i2c dev 0; " \
|
||||
+ "i2c mw 0x50 0x00.2 aa; " \
|
||||
+ "i2c mw 0x50 0x01.2 55; " \
|
||||
+ "i2c mw 0x50 0x02.2 33; " \
|
||||
+ "i2c mw 0x50 0x03.2 ee; " \
|
||||
+ "i2c mw 0x50 0x04.2 42; " \
|
||||
+ "i2c mw 0x50 0x05.2 42; " \
|
||||
+ "i2c mw 0x50 0x06.2 52; " \
|
||||
+ "i2c mw 0x50 0x07.2 44; " \
|
||||
+ "i2c mw 0x50 0x08.2 58; " \
|
||||
+ "i2c mw 0x50 0x09.2 31; " \
|
||||
+ "i2c mw 0x50 0x0a.2 35; " \
|
||||
+ "i2c mw 0x50 0x0b.2 5f; " \
|
||||
+ "i2c mw 0x50 0x0c.2 43; " \
|
||||
+ "i2c mw 0x50 0x0d.2 2e; " \
|
||||
+ "i2c mw 0x50 0x0e.2 30; " \
|
||||
+ "i2c mw 0x50 0x0f.2 30; " \
|
||||
+ "i2c mw 0x50 0x10.2 79; " \
|
||||
+ "i2c mw 0x50 0x11.2 79; " \
|
||||
+ "i2c mw 0x50 0x12.2 77; " \
|
||||
+ "i2c mw 0x50 0x13.2 77; " \
|
||||
+ "i2c mw 0x50 0x14.2 50; " \
|
||||
+ "i2c mw 0x50 0x15.2 58; " \
|
||||
+ "i2c mw 0x50 0x16.2 31; " \
|
||||
+ "i2c mw 0x50 0x17.2 35; " \
|
||||
+ "i2c mw 0x50 0x18.2 6e; " \
|
||||
+ "i2c mw 0x50 0x19.2 6e; " \
|
||||
+ "i2c mw 0x50 0x1a.2 6e; " \
|
||||
+ "i2c mw 0x50 0x1b.2 6e; " \
|
||||
+ "i2c mw 0x50 0x1c.2 ff; " \
|
||||
+ "i2c mw 0x50 0x1d.2 ff; " \
|
||||
+ "i2c mw 0x50 0x1e.2 ff; " \
|
||||
+ "i2c mw 0x50 0x1f.2 ff; " \
|
||||
+ "i2c md 0x50 0x00.2 20; " \
|
||||
+ "eeprom_bbai_a2=i2c dev 0; " \
|
||||
+ "i2c mw 0x50 0x00.2 aa; " \
|
||||
+ "i2c mw 0x50 0x01.2 55; " \
|
||||
+ "i2c mw 0x50 0x02.2 33; " \
|
||||
+ "i2c mw 0x50 0x03.2 ee; " \
|
||||
+ "i2c mw 0x50 0x04.2 42; " \
|
||||
+ "i2c mw 0x50 0x05.2 42; " \
|
||||
+ "i2c mw 0x50 0x06.2 4F; " \
|
||||
+ "i2c mw 0x50 0x07.2 4E; " \
|
||||
+ "i2c mw 0x50 0x08.2 45; " \
|
||||
+ "i2c mw 0x50 0x09.2 2D; " \
|
||||
+ "i2c mw 0x50 0x0a.2 41; " \
|
||||
+ "i2c mw 0x50 0x0b.2 49; " \
|
||||
+ "i2c mw 0x50 0x0c.2 30; " \
|
||||
+ "i2c mw 0x50 0x0d.2 30; " \
|
||||
+ "i2c mw 0x50 0x0e.2 41; " \
|
||||
+ "i2c mw 0x50 0x0f.2 32; " \
|
||||
+ "i2c mw 0x50 0x10.2 57; " \
|
||||
+ "i2c mw 0x50 0x11.2 57; " \
|
||||
+ "i2c mw 0x50 0x12.2 59; " \
|
||||
+ "i2c mw 0x50 0x13.2 59; " \
|
||||
+ "i2c mw 0x50 0x14.2 53; " \
|
||||
+ "i2c mw 0x50 0x15.2 42; " \
|
||||
+ "i2c mw 0x50 0x16.2 41; " \
|
||||
+ "i2c mw 0x50 0x17.2 49; " \
|
||||
+ "i2c mw 0x50 0x18.2 30; " \
|
||||
+ "i2c mw 0x50 0x19.2 30; " \
|
||||
+ "i2c mw 0x50 0x1a.2 30; " \
|
||||
+ "i2c mw 0x50 0x1b.2 30; " \
|
||||
+ "i2c mw 0x50 0x1c.2 30; " \
|
||||
+ "i2c mw 0x50 0x1d.2 30; " \
|
||||
+ "i2c mw 0x50 0x1e.2 ff; " \
|
||||
+ "i2c mw 0x50 0x1f.2 ff; " \
|
||||
+ "i2c md 0x50 0x00.2 20; " \
|
||||
+ "\0" \
|
||||
+
|
||||
+#define EEWIKI_MMC_BOOT \
|
||||
+ "mmc_boot=${devtype} dev ${mmcdev}; ${devtype} part; " \
|
||||
+ "if ${devtype} rescan; then " \
|
||||
+ "echo Scanning ${devtype} device ${mmcdev};" \
|
||||
+ "setenv bootpart ${mmcdev}:1; " \
|
||||
+ "echo Checking for: /uEnv.txt ...;" \
|
||||
+ "if test -e ${devtype} ${bootpart} /uEnv.txt; then " \
|
||||
+ "load ${devtype} ${bootpart} ${loadaddr} /uEnv.txt;" \
|
||||
+ "env import -t ${loadaddr} ${filesize};" \
|
||||
+ "echo Loaded environment from /uEnv.txt;" \
|
||||
+ "echo Checking if uenvcmd is set ...;" \
|
||||
+ "if test -n ${uenvcmd}; then " \
|
||||
+ "echo Running uenvcmd ...;" \
|
||||
+ "run uenvcmd;" \
|
||||
+ "fi;" \
|
||||
+ "fi; " \
|
||||
+ "echo Checking for: /boot/uEnv.txt ...;" \
|
||||
+ "for i in 1 2 3 4 5 6 7 ; do " \
|
||||
+ "setenv mmcpart ${i};" \
|
||||
+ "setenv bootpart ${mmcdev}:${mmcpart};" \
|
||||
+ "if test -e ${devtype} ${bootpart} /boot/uEnv.txt; then " \
|
||||
+ "load ${devtype} ${bootpart} ${loadaddr} /boot/uEnv.txt;" \
|
||||
+ "env import -t ${loadaddr} ${filesize};" \
|
||||
+ "echo Loaded environment from /boot/uEnv.txt;" \
|
||||
+ "if test -n ${dtb}; then " \
|
||||
+ "setenv fdtfile ${dtb};" \
|
||||
+ "echo debug: [dtb=${fdtfile}] ...;" \
|
||||
+ "fi;" \
|
||||
+ "echo Checking if uname_r is set in /boot/uEnv.txt ...;" \
|
||||
+ "if test -n ${uname_r}; then " \
|
||||
+ "echo debug: [uname_r=${uname_r}] ...;" \
|
||||
+ "setenv oldroot /dev/mmcblk${mmcdev}p${mmcpart};" \
|
||||
+ "run uname_boot;" \
|
||||
+ "fi;" \
|
||||
+ "fi;" \
|
||||
+ "done;" \
|
||||
+ "fi;\0" \
|
||||
+
|
||||
+#define EEWIKI_SCSI_BOOT \
|
||||
+ "scsi_boot=${devtype} reset ; " \
|
||||
+ "if ${devtype} dev ${mmcdev}; then " \
|
||||
+ "echo Scanning ${devtype} device ${mmcdev};" \
|
||||
+ "setenv bootpart ${mmcdev}:1; " \
|
||||
+ "echo Checking for: /uEnv.txt ...;" \
|
||||
+ "if test -e ${devtype} ${bootpart} /uEnv.txt; then " \
|
||||
+ "load ${devtype} ${bootpart} ${loadaddr} /uEnv.txt;" \
|
||||
+ "env import -t ${loadaddr} ${filesize};" \
|
||||
+ "echo Loaded environment from /uEnv.txt;" \
|
||||
+ "echo Checking if uenvcmd is set ...;" \
|
||||
+ "if test -n ${uenvcmd}; then " \
|
||||
+ "echo Running uenvcmd ...;" \
|
||||
+ "run uenvcmd;" \
|
||||
+ "fi;" \
|
||||
+ "fi; " \
|
||||
+ "echo Checking for: /boot/uEnv.txt ...;" \
|
||||
+ "for i in 1 2 3 4 ; do " \
|
||||
+ "setenv mmcpart ${i};" \
|
||||
+ "setenv bootpart ${mmcdev}:${mmcpart};" \
|
||||
+ "if test -e ${devtype} ${bootpart} /boot/uEnv.txt; then " \
|
||||
+ "load ${devtype} ${bootpart} ${loadaddr} /boot/uEnv.txt;" \
|
||||
+ "env import -t ${loadaddr} ${filesize};" \
|
||||
+ "echo Loaded environment from /boot/uEnv.txt;" \
|
||||
+ "if test -n ${dtb}; then " \
|
||||
+ "setenv fdtfile ${dtb};" \
|
||||
+ "echo debug: [dtb=${fdtfile}] ...;" \
|
||||
+ "fi;" \
|
||||
+ "echo Checking if uname_r is set in /boot/uEnv.txt ...;" \
|
||||
+ "if test -n ${uname_r}; then " \
|
||||
+ "echo debug: [uname_r=${uname_r}] ...;" \
|
||||
+ "setenv oldroot /dev/sda${mmcpart};" \
|
||||
+ "run uname_boot;" \
|
||||
+ "fi;" \
|
||||
+ "fi;" \
|
||||
+ "done;" \
|
||||
+ "fi;\0" \
|
||||
+
|
||||
+#define EEWIKI_USB_BOOT \
|
||||
+ "usb_boot=${devtype} reset ; " \
|
||||
+ "if ${devtype} dev ${mmcdev}; then " \
|
||||
+ "echo Scanning ${devtype} device ${mmcdev};" \
|
||||
+ "setenv bootpart ${mmcdev}:1; " \
|
||||
+ "echo Checking for: /uEnv.txt ...;" \
|
||||
+ "if test -e ${devtype} ${bootpart} /uEnv.txt; then " \
|
||||
+ "load ${devtype} ${bootpart} ${loadaddr} /uEnv.txt;" \
|
||||
+ "env import -t ${loadaddr} ${filesize};" \
|
||||
+ "echo Loaded environment from /uEnv.txt;" \
|
||||
+ "echo Checking if uenvcmd is set in /uEnv.txt ...;" \
|
||||
+ "if test -n ${uenvcmd}; then " \
|
||||
+ "echo Running uenvcmd ...;" \
|
||||
+ "run uenvcmd;" \
|
||||
+ "fi;" \
|
||||
+ "fi; " \
|
||||
+ "echo Checking for: /boot/uEnv.txt ...;" \
|
||||
+ "for i in 1 2 3 4 ; do " \
|
||||
+ "setenv mmcpart ${i};" \
|
||||
+ "setenv bootpart ${mmcdev}:${mmcpart};" \
|
||||
+ "if test -e ${devtype} ${bootpart} /boot/uEnv.txt; then " \
|
||||
+ "load ${devtype} ${bootpart} ${loadaddr} /boot/uEnv.txt;" \
|
||||
+ "env import -t ${loadaddr} ${filesize};" \
|
||||
+ "echo Loaded environment from /boot/uEnv.txt;" \
|
||||
+ "if test -n ${dtb}; then " \
|
||||
+ "setenv fdtfile ${dtb};" \
|
||||
+ "echo debug: [dtb=${fdtfile}] ...;" \
|
||||
+ "fi;" \
|
||||
+ "echo Checking if uname_r is set in /boot/uEnv.txt ...;" \
|
||||
+ "if test -n ${uname_r}; then " \
|
||||
+ "echo debug: [uname_r=${uname_r}] ...;" \
|
||||
+ "setenv oldroot /dev/sda${mmcpart};" \
|
||||
+ "run uname_boot;" \
|
||||
+ "fi;" \
|
||||
+ "fi;" \
|
||||
+ "done;" \
|
||||
+ "fi;\0" \
|
||||
+
|
||||
+#define EEWIKI_UNAME_BOOT \
|
||||
+ "uname_boot="\
|
||||
+ "setenv bootdir /boot; " \
|
||||
+ "setenv bootfile vmlinuz-${uname_r}; " \
|
||||
+ "if test -e ${devtype} ${bootpart} ${bootdir}/${bootfile}; then " \
|
||||
+ "echo loading ${bootdir}/${bootfile} ...; "\
|
||||
+ "run loadimage;" \
|
||||
+ "setenv fdtdir /boot/dtbs/${uname_r}; " \
|
||||
+ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
|
||||
+ "run loadfdt;" \
|
||||
+ "else " \
|
||||
+ "setenv fdtdir /usr/lib/linux-image-${uname_r}; " \
|
||||
+ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
|
||||
+ "run loadfdt;" \
|
||||
+ "else " \
|
||||
+ "setenv fdtdir /lib/firmware/${uname_r}/device-tree; " \
|
||||
+ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
|
||||
+ "run loadfdt;" \
|
||||
+ "else " \
|
||||
+ "setenv fdtdir /boot/dtb-${uname_r}; " \
|
||||
+ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
|
||||
+ "run loadfdt;" \
|
||||
+ "else " \
|
||||
+ "setenv fdtdir /boot/dtbs; " \
|
||||
+ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
|
||||
+ "run loadfdt;" \
|
||||
+ "else " \
|
||||
+ "setenv fdtdir /boot/dtb; " \
|
||||
+ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
|
||||
+ "run loadfdt;" \
|
||||
+ "else " \
|
||||
+ "setenv fdtdir /boot; " \
|
||||
+ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
|
||||
+ "run loadfdt;" \
|
||||
+ "else " \
|
||||
+ "echo; echo unable to find ${fdtfile} ...; echo booting legacy ...;"\
|
||||
+ "run args_mmc;" \
|
||||
+ "echo debug: [${bootargs}] ... ;" \
|
||||
+ "echo debug: [bootz ${loadaddr}] ... ;" \
|
||||
+ "bootz ${loadaddr}; " \
|
||||
+ "fi;" \
|
||||
+ "fi;" \
|
||||
+ "fi;" \
|
||||
+ "fi;" \
|
||||
+ "fi;" \
|
||||
+ "fi;" \
|
||||
+ "fi; " \
|
||||
+ "if test -n ${enable_uboot_overlays}; then " \
|
||||
+ "setenv fdt_buffer 0x60000;" \
|
||||
+ "if test -n ${uboot_fdt_buffer}; then " \
|
||||
+ "setenv fdt_buffer ${uboot_fdt_buffer};" \
|
||||
+ "fi;" \
|
||||
+ "echo uboot_overlays: [fdt_buffer=${fdt_buffer}] ... ;" \
|
||||
+ "if test -n ${uboot_overlay_addr0}; then " \
|
||||
+ "if test -n ${disable_uboot_overlay_addr0}; then " \
|
||||
+ "echo uboot_overlays: uboot loading of [${uboot_overlay_addr0}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr0=1]...;" \
|
||||
+ "else " \
|
||||
+ "setenv uboot_overlay ${uboot_overlay_addr0}; " \
|
||||
+ "run virtualloadoverlay;" \
|
||||
+ "fi;" \
|
||||
+ "fi;" \
|
||||
+ "if test -n ${uboot_overlay_addr1}; then " \
|
||||
+ "if test -n ${disable_uboot_overlay_addr1}; then " \
|
||||
+ "echo uboot_overlays: uboot loading of [${uboot_overlay_addr1}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr1=1]...;" \
|
||||
+ "else " \
|
||||
+ "setenv uboot_overlay ${uboot_overlay_addr1}; " \
|
||||
+ "run virtualloadoverlay;" \
|
||||
+ "fi;" \
|
||||
+ "fi;" \
|
||||
+ "if test -n ${uboot_overlay_addr2}; then " \
|
||||
+ "if test -n ${disable_uboot_overlay_addr2}; then " \
|
||||
+ "echo uboot_overlays: uboot loading of [${uboot_overlay_addr2}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr2=1]...;" \
|
||||
+ "else " \
|
||||
+ "setenv uboot_overlay ${uboot_overlay_addr2}; " \
|
||||
+ "run virtualloadoverlay;" \
|
||||
+ "fi;" \
|
||||
+ "fi;" \
|
||||
+ "if test -n ${uboot_overlay_addr3}; then " \
|
||||
+ "if test -n ${disable_uboot_overlay_addr3}; then " \
|
||||
+ "echo uboot_overlays: uboot loading of [${uboot_overlay_addr3}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr3=1]...;" \
|
||||
+ "else " \
|
||||
+ "setenv uboot_overlay ${uboot_overlay_addr3}; " \
|
||||
+ "run virtualloadoverlay;" \
|
||||
+ "fi;" \
|
||||
+ "fi;" \
|
||||
+ "if test -n ${uboot_overlay_addr4}; then " \
|
||||
+ "setenv uboot_overlay ${uboot_overlay_addr4}; " \
|
||||
+ "run virtualloadoverlay;" \
|
||||
+ "fi;" \
|
||||
+ "if test -n ${uboot_overlay_addr5}; then " \
|
||||
+ "setenv uboot_overlay ${uboot_overlay_addr5}; " \
|
||||
+ "run virtualloadoverlay;" \
|
||||
+ "fi;" \
|
||||
+ "if test -n ${uboot_overlay_addr6}; then " \
|
||||
+ "setenv uboot_overlay ${uboot_overlay_addr6}; " \
|
||||
+ "run virtualloadoverlay;" \
|
||||
+ "fi;" \
|
||||
+ "if test -n ${uboot_overlay_addr7}; then " \
|
||||
+ "setenv uboot_overlay ${uboot_overlay_addr7}; " \
|
||||
+ "run virtualloadoverlay;" \
|
||||
+ "fi;" \
|
||||
+ "if test -n ${uboot_overlay_pru}; then " \
|
||||
+ "setenv uboot_overlay ${uboot_overlay_pru}; " \
|
||||
+ "run virtualloadoverlay;" \
|
||||
+ "fi;" \
|
||||
+ "else " \
|
||||
+ "echo uboot_overlays: add [enable_uboot_overlays=1] to /boot/uEnv.txt to enable...;" \
|
||||
+ "fi;" \
|
||||
+ "setenv rdfile initrd.img-${uname_r}; " \
|
||||
+ "if test -e ${devtype} ${bootpart} ${bootdir}/${rdfile}; then " \
|
||||
+ "echo loading ${bootdir}/${rdfile} ...; "\
|
||||
+ "run loadrd;" \
|
||||
+ "if test -n ${netinstall_enable}; then " \
|
||||
+ "run args_netinstall; run message;" \
|
||||
+ "echo debug: [${bootargs}] ... ;" \
|
||||
+ "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \
|
||||
+ "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
|
||||
+ "fi;" \
|
||||
+ "if test -n ${uenv_root}; then " \
|
||||
+ "run args_uenv_root;" \
|
||||
+ "echo debug: [${bootargs}] ... ;" \
|
||||
+ "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \
|
||||
+ "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
|
||||
+ "fi;" \
|
||||
+ "if test -n ${uuid}; then " \
|
||||
+ "run args_mmc_uuid;" \
|
||||
+ "echo debug: [${bootargs}] ... ;" \
|
||||
+ "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \
|
||||
+ "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
|
||||
+ "else " \
|
||||
+ "run args_mmc_old;" \
|
||||
+ "echo debug: [${bootargs}] ... ;" \
|
||||
+ "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \
|
||||
+ "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
|
||||
+ "fi;" \
|
||||
+ "else " \
|
||||
+ "if test -n ${uenv_root}; then " \
|
||||
+ "run args_uenv_root;" \
|
||||
+ "echo debug: [${bootargs}] ... ;" \
|
||||
+ "echo debug: [bootz ${loadaddr} - ${fdtaddr}] ... ;" \
|
||||
+ "bootz ${loadaddr} - ${fdtaddr}; " \
|
||||
+ "fi;" \
|
||||
+ "run args_mmc_old;" \
|
||||
+ "echo debug: [${bootargs}] ... ;" \
|
||||
+ "echo debug: [bootz ${loadaddr} - ${fdtaddr}] ... ;" \
|
||||
+ "bootz ${loadaddr} - ${fdtaddr}; " \
|
||||
+ "fi;" \
|
||||
+ "fi;\0" \
|
||||
+
|
||||
/*
|
||||
* The following are general good-enough settings for U-Boot. We set a
|
||||
* large malloc pool as we generally have a lot of DDR, and we opt for
|
||||
diff --git a/include/configs/ti_omap5_common.h b/include/configs/ti_omap5_common.h
|
||||
index de0a6af2fd..0cd2ccea03 100644
|
||||
--- a/include/configs/ti_omap5_common.h
|
||||
+++ b/include/configs/ti_omap5_common.h
|
||||
@@ -64,6 +64,11 @@
|
||||
DEFAULT_FIT_TI_ARGS \
|
||||
DEFAULT_COMMON_BOOT_TI_ARGS \
|
||||
DEFAULT_FDT_TI_ARGS \
|
||||
+ EEWIKI_USB_BOOT \
|
||||
+ EEWIKI_SCSI_BOOT \
|
||||
+ EEWIKI_MMC_BOOT \
|
||||
+ EEWIKI_UNAME_BOOT \
|
||||
+ EEPROM_PROGRAMMING \
|
||||
DFUARGS \
|
||||
NETARGS \
|
||||
NANDARGS \
|
||||
diff --git a/include/environment/ti/boot.h b/include/environment/ti/boot.h
|
||||
index a9d8f28d46..1480b6e3df 100644
|
||||
--- a/include/environment/ti/boot.h
|
||||
+++ b/include/environment/ti/boot.h
|
||||
@@ -132,6 +132,7 @@
|
||||
"bootpart=0:2\0" \
|
||||
"bootdir=/boot\0" \
|
||||
"bootfile=zImage\0" \
|
||||
+ "board_eeprom_header=undefined\0" \
|
||||
"usbtty=cdc_acm\0" \
|
||||
"vram=16M\0" \
|
||||
AVB_VERIFY_CMD \
|
||||
@@ -183,7 +184,14 @@
|
||||
"else " \
|
||||
"echo $apart partition not found; " \
|
||||
"exit; " \
|
||||
- "fi;\0"
|
||||
+ "fi;\0 " \
|
||||
+ "read_board_eeprom=" \
|
||||
+ "if test $board_eeprom_header = beagle_x15_revb1_blank; then " \
|
||||
+ "run eeprom_dump; run eeprom_x15_b1; reset; fi; " \
|
||||
+ "if test $board_eeprom_header = beagle_x15_revc_blank; then " \
|
||||
+ "run eeprom_dump; run eeprom_x15_c; reset; fi; " \
|
||||
+ "if test $board_eeprom_header = bbai_a2_blank; then " \
|
||||
+ "run eeprom_dump; run eeprom_bbai_a2; reset; fi; \0 "
|
||||
|
||||
#ifdef CONFIG_OMAP54XX
|
||||
|
||||
@@ -223,19 +231,17 @@
|
||||
"echo WARNING: Could not determine device tree to use; fi; \0"
|
||||
|
||||
#define CONFIG_BOOTCOMMAND \
|
||||
- "if test ${dofastboot} -eq 1; then " \
|
||||
- "echo Boot fastboot requested, resetting dofastboot ...;" \
|
||||
- "setenv dofastboot 0; saveenv;" \
|
||||
- FASTBOOT_CMD \
|
||||
- "fi;" \
|
||||
- "if test ${boot_fit} -eq 1; then " \
|
||||
- "run update_to_fit;" \
|
||||
- "fi;" \
|
||||
+ "run read_board_eeprom; " \
|
||||
"run findfdt; " \
|
||||
- "run envboot; " \
|
||||
- "run mmcboot;" \
|
||||
- "run emmc_linux_boot; " \
|
||||
- "run emmc_android_boot; " \
|
||||
+ "setenv mmcdev 0; " \
|
||||
+ "setenv devtype usb; " \
|
||||
+ "echo usb_boot is currently disabled;" \
|
||||
+ "setenv devtype scsi; " \
|
||||
+ "echo scsi_boot is currently disabled;" \
|
||||
+ "setenv devtype mmc; " \
|
||||
+ "run mmc_boot;" \
|
||||
+ "setenv mmcdev 1; " \
|
||||
+ "run mmc_boot;" \
|
||||
""
|
||||
|
||||
#endif /* CONFIG_OMAP54XX */
|
||||
diff --git a/include/environment/ti/mmc.h b/include/environment/ti/mmc.h
|
||||
index b86c8dc7a4..0ec09f279a 100644
|
||||
--- a/include/environment/ti/mmc.h
|
||||
+++ b/include/environment/ti/mmc.h
|
||||
@@ -11,11 +11,31 @@
|
||||
#define DEFAULT_MMC_TI_ARGS \
|
||||
"mmcdev=0\0" \
|
||||
"mmcrootfstype=ext4 rootwait\0" \
|
||||
- "finduuid=part uuid mmc ${bootpart} uuid\0" \
|
||||
+ "finduuid=part uuid ${devtype} ${bootpart} uuid\0" \
|
||||
"args_mmc=run finduuid;setenv bootargs console=${console} " \
|
||||
"${optargs} " \
|
||||
- "root=PARTUUID=${uuid} rw " \
|
||||
- "rootfstype=${mmcrootfstype}\0" \
|
||||
+ "root=PARTUUID=${uuid} ro " \
|
||||
+ "rootfstype=${mmcrootfstype} " \
|
||||
+ "${cmdline}\0" \
|
||||
+ "args_mmc_old=setenv bootargs console=${console} " \
|
||||
+ "${optargs} " \
|
||||
+ "root=${oldroot} ro " \
|
||||
+ "rootfstype=${mmcrootfstype} " \
|
||||
+ "${cmdline}\0" \
|
||||
+ "args_mmc_uuid=setenv bootargs console=${console} " \
|
||||
+ "${optargs} " \
|
||||
+ "root=UUID=${uuid} ro " \
|
||||
+ "rootfstype=${mmcrootfstype} " \
|
||||
+ "${cmdline}\0" \
|
||||
+ "args_uenv_root=setenv bootargs console=${console} " \
|
||||
+ "${optargs} " \
|
||||
+ "root=${uenv_root} ro " \
|
||||
+ "rootfstype=${mmcrootfstype} " \
|
||||
+ "${musb} ${cmdline}\0" \
|
||||
+ "args_netinstall=setenv bootargs ${netinstall_bootargs} " \
|
||||
+ "${optargs} " \
|
||||
+ "root=/dev/ram rw " \
|
||||
+ "${cmdline}\0" \
|
||||
"loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr\0" \
|
||||
"bootscript=echo Running bootscript from mmc${mmcdev} ...; " \
|
||||
"source ${loadaddr}\0" \
|
||||
@@ -24,7 +44,28 @@
|
||||
"env import -t ${loadaddr} ${filesize}\0" \
|
||||
"loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}\0" \
|
||||
"loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \
|
||||
- "loadfdt=load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \
|
||||
+ "loadrd=load ${devtype} ${bootpart} ${rdaddr} ${bootdir}/${rdfile}; setenv rdsize ${filesize}\0" \
|
||||
+ "loadfdt=echo loading ${fdtdir}/${fdtfile} ...; load ${devtype} ${bootpart} ${fdtaddr} ${fdtdir}/${fdtfile}\0" \
|
||||
+ "loadoverlay=echo uboot_overlays: loading ${actual_uboot_overlay} ...; " \
|
||||
+ "load ${devtype} ${bootpart} ${rdaddr} ${actual_uboot_overlay}; " \
|
||||
+ "fdt addr ${fdtaddr}; fdt resize ${fdt_buffer}; " \
|
||||
+ "fdt apply ${rdaddr}; fdt resize ${fdt_buffer};\0" \
|
||||
+ "virtualloadoverlay=if test -e ${devtype} ${bootpart} ${fdtdir}/overlays/${uboot_overlay}; then " \
|
||||
+ "setenv actual_uboot_overlay ${fdtdir}/overlays/${uboot_overlay}; " \
|
||||
+ "run loadoverlay;" \
|
||||
+ "else " \
|
||||
+ "if test -e ${devtype} ${bootpart} /lib/firmware/${uboot_overlay}; then " \
|
||||
+ "setenv actual_uboot_overlay /lib/firmware/${uboot_overlay}; " \
|
||||
+ "run loadoverlay;" \
|
||||
+ "else " \
|
||||
+ "if test -e ${devtype} ${bootpart} ${uboot_overlay}; then " \
|
||||
+ "setenv actual_uboot_overlay ${uboot_overlay}; " \
|
||||
+ "run loadoverlay;" \
|
||||
+ "else " \
|
||||
+ "echo uboot_overlays: unable to find [${devtype} ${bootpart} ${uboot_overlay}]...;" \
|
||||
+ "fi;" \
|
||||
+ "fi;" \
|
||||
+ "fi;\0" \
|
||||
"envboot=mmc dev ${mmcdev}; " \
|
||||
"if mmc rescan; then " \
|
||||
"echo SD/MMC found on device ${mmcdev};" \
|
||||
--
|
||||
2.20.1
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
label linux
|
||||
kernel /boot/Image
|
||||
devicetree /boot/jh7100-beaglev-starlight.dtb
|
||||
append console=ttyS0,115200 earlyprintk root=PARTUUID=0fef845a-c6e1-45bc-82f7-002fa720f958 rootwait
|
||||
@@ -1,12 +0,0 @@
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
partition-table-type = "gpt"
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type-uuid = 72ec70a6-cf74-40e6-bd49-4bda08e8f224
|
||||
partition-uuid = 0fef845a-c6e1-45bc-82f7-002fa720f958
|
||||
bootable = "true"
|
||||
image = "rootfs.ext4"
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
#!/bin/sh
|
||||
BOARD_DIR=$(dirname $0)
|
||||
|
||||
# Bring the extlinux.conf file in.
|
||||
install -D -m 0644 ${BOARD_DIR}/extlinux.conf \
|
||||
${TARGET_DIR}/boot/extlinux/extlinux.conf
|
||||
|
||||
# To be reflashed through Xmodem, the bootloader needs to be prepended
|
||||
# with a 4-byte header that contains the total size of the file.
|
||||
perl -e 'print pack("l", (stat @ARGV[0])[7])' ${BINARIES_DIR}/fw_payload.bin > ${BINARIES_DIR}/fw_payload.bin.out
|
||||
cat ${BINARIES_DIR}/fw_payload.bin >> ${BINARIES_DIR}/fw_payload.bin.out
|
||||
@@ -1,124 +0,0 @@
|
||||
BeagleV
|
||||
=======
|
||||
|
||||
BeagleV is a low-cost RISC-V 64-bit based platform, powered by a
|
||||
Starfive JH7100 processor. The current defconfig in Buildroot has been
|
||||
tested with the JH7100 chip used on the beta version of the BeagleV
|
||||
board.
|
||||
|
||||
How to build
|
||||
============
|
||||
|
||||
$ make beaglev_defconfig
|
||||
$ make
|
||||
|
||||
Build results
|
||||
=============
|
||||
|
||||
After building, output/images contains:
|
||||
|
||||
+ bootloader-BEAGLEV-buildroot.bin.out
|
||||
+ ddrinit-2133-buildroot.bin.out
|
||||
+ Image
|
||||
+ fw_payload.bin
|
||||
+ fw_payload.bin.out
|
||||
+ fw_payload.elf
|
||||
+ rootfs.ext2
|
||||
+ rootfs.ext4
|
||||
+ sdcard.img
|
||||
+ u-boot.bin
|
||||
|
||||
The four important files are:
|
||||
|
||||
- bootloader-BEAGLEV-buildroot.bin.out, the first stage bootloader
|
||||
|
||||
- ddrinit-2133-buildroot.bin.out, the DDR initialization firmware
|
||||
|
||||
- fw_payload.bin.out, which is the bootloader image, containing
|
||||
both OpenSBI and U-Boot.
|
||||
|
||||
- sdcard.img, the SD card image, which contains the root filesystem,
|
||||
kernel image and Device Tree.
|
||||
|
||||
Flashing the SD card image
|
||||
==========================
|
||||
|
||||
$ sudo dd if=output/images/sdcard.img of=/dev/sdX
|
||||
|
||||
Preparing the board
|
||||
===================
|
||||
|
||||
Connect the Beagle-V fan to the 5V supply (pin 2 or 4 of the GPIO
|
||||
connector) and GND (pin 6 of the GPIO connector).
|
||||
|
||||
Connect a TTL UART cable to pin 8 (TX), 10 (RX) and 14 (GND).
|
||||
|
||||
Insert your SD card.
|
||||
|
||||
Power-up the board using an USB-C cable.
|
||||
|
||||
Flashing OpenSBI/U-Boot
|
||||
=======================
|
||||
|
||||
The bootloader pre-flashed on the Beagle-V has a non-working
|
||||
fdt_addr_r environment variable value, so it won't work
|
||||
as-is. Reflashing the bootloader with the bootloader image produced by
|
||||
Buildroot is necessary.
|
||||
|
||||
When the board starts up, a pre-loader shows a count down of 2
|
||||
seconds, interrupt by pressing any key. You should reach a menu like
|
||||
this:
|
||||
|
||||
--------8<----------
|
||||
|
||||
bootloader version:210209-4547a8d
|
||||
ddr 0x00000000, 1M test
|
||||
ddr 0x00100000, 2M test
|
||||
DDR clk 2133M,Version: 210302-5aea32f
|
||||
0
|
||||
***************************************************
|
||||
*************** FLASH PROGRAMMING *****************
|
||||
***************************************************
|
||||
|
||||
0:update uboot
|
||||
1:quit
|
||||
select the function:
|
||||
|
||||
--------8<----------
|
||||
|
||||
Press 0 and Enter. You will now see "C" characters being
|
||||
displayed. Ask your serial port communication program to send
|
||||
fw_payload.bin.out using the Xmodem protocol.
|
||||
|
||||
After reflashing is complete, restart the board, it will automatically
|
||||
start the system from the SD card, and reach the login prompt.
|
||||
|
||||
Flashing low-level bootloaders
|
||||
==============================
|
||||
|
||||
The BeagleV comes pre-flashed with functional low-level bootloaders
|
||||
(called "secondboot" and "ddrinit"). Re-flashing them is not necessary
|
||||
to use this Buildroot defconfig. However, for the sake of
|
||||
completeness, Buildroot builds and provides those low-level bootloader
|
||||
images.
|
||||
|
||||
You can flash them as follows:
|
||||
|
||||
- In the same "pre-loader" menu as the one used above, instead of
|
||||
entering 0 or 1, enter the magic "root@s5t" string. This enters the
|
||||
"expert" features.
|
||||
|
||||
- Then, press 0 and send over X-modem the
|
||||
bootloader-BEAGLEV-buildroot.bin.out file.
|
||||
|
||||
- Then, press 1 and send over X-modem the
|
||||
ddrinit-2133-buildroot.bin.out.
|
||||
|
||||
Note that the reflashing mechanism itself relies on those low-level
|
||||
bootloaders, so if you flash non-working versions, you'll have to go
|
||||
through a recovery process. This requires wiring up to a separate
|
||||
debug UART, which pins are located near the HDMI connector. See
|
||||
https://wiki.seeedstudio.com/BeagleV-Update-bootloader-ddr-init-boot-uboot-Recover-bootloader/
|
||||
section "Recover the bootloader" for more details. The instructions
|
||||
make use of a jh7100-recover tool, which Buildroot has built as part
|
||||
of this defconfig: it is available as output/host/bin/jh7100-recover.
|
||||
@@ -6,7 +6,6 @@ image boot.vfat {
|
||||
"extlinux"
|
||||
}
|
||||
}
|
||||
|
||||
size = 64M
|
||||
}
|
||||
|
||||
@@ -17,8 +16,8 @@ image sdcard.img {
|
||||
partition u-boot {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot-sunxi-with-spl.bin"
|
||||
offset = 8K
|
||||
size = 1016K # 1MB - 8KB
|
||||
offset = 8192
|
||||
size = 1040384 # 1MB - 8192
|
||||
}
|
||||
|
||||
partition boot {
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
From 523ab5be1a84e9aa15fb62c3a15a6338b01d3961 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= <peron.clem@gmail.com>
|
||||
Date: Tue, 9 Apr 2019 00:15:06 +0200
|
||||
Subject: [PATCH] plat: allwinner: common: use r_wdog instead of wdog
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Some Allwinner H6 has a broken watchdog that doesn't
|
||||
make the soc reboot.
|
||||
|
||||
Use the R_WATCHDOG instead.
|
||||
|
||||
Signed-off-by: Clément Péron <peron.clem@gmail.com>
|
||||
Change-Id: Ie95cc30a80ed517b60b30d6bc2e655a1b53f18ba
|
||||
---
|
||||
plat/allwinner/common/sunxi_pm.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/plat/allwinner/common/sunxi_pm.c b/plat/allwinner/common/sunxi_pm.c
|
||||
index 1d2dc938..13e13532 100644
|
||||
--- a/plat/allwinner/common/sunxi_pm.c
|
||||
+++ b/plat/allwinner/common/sunxi_pm.c
|
||||
@@ -20,9 +20,9 @@
|
||||
#include <sunxi_mmap.h>
|
||||
#include <sunxi_private.h>
|
||||
|
||||
-#define SUNXI_WDOG0_CTRL_REG (SUNXI_WDOG_BASE + 0x0010)
|
||||
-#define SUNXI_WDOG0_CFG_REG (SUNXI_WDOG_BASE + 0x0014)
|
||||
-#define SUNXI_WDOG0_MODE_REG (SUNXI_WDOG_BASE + 0x0018)
|
||||
+#define SUNXI_WDOG0_CTRL_REG (SUNXI_R_WDOG_BASE + 0x0010)
|
||||
+#define SUNXI_WDOG0_CFG_REG (SUNXI_R_WDOG_BASE + 0x0014)
|
||||
+#define SUNXI_WDOG0_MODE_REG (SUNXI_R_WDOG_BASE + 0x0018)
|
||||
|
||||
#define mpidr_is_valid(mpidr) ( \
|
||||
MPIDR_AFFLVL3_VAL(mpidr) == 0 && \
|
||||
--
|
||||
2.20.1
|
||||
|
||||
@@ -0,0 +1,279 @@
|
||||
From 99cade8743158889b3e8db93c003b3318ebd4bda Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= <peron.clem@gmail.com>
|
||||
Date: Sun, 11 Aug 2019 22:38:57 +0200
|
||||
Subject: [PATCH] arm: dts: sync dts for Allwinner H6
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Sync Kernel DTS for Allwinner H6 boards.
|
||||
|
||||
Drop /omit-if-no-ref/ keyword as it's not supported by U-boot.
|
||||
|
||||
commit <d45331b00ddb> Linux 5.3-rc4
|
||||
|
||||
Signed-off-by: Clément Péron <peron.clem@gmail.com>
|
||||
---
|
||||
arch/arm/dts/sun50i-h6-beelink-gs1.dts | 76 ++++++++++++++++++++++++++
|
||||
arch/arm/dts/sun50i-h6-pine-h64.dts | 12 ++++
|
||||
arch/arm/dts/sun50i-h6.dtsi | 46 +++++++++++++++-
|
||||
3 files changed, 131 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/dts/sun50i-h6-beelink-gs1.dts b/arch/arm/dts/sun50i-h6-beelink-gs1.dts
|
||||
index 54b0882bed..0dc33c90dd 100644
|
||||
--- a/arch/arm/dts/sun50i-h6-beelink-gs1.dts
|
||||
+++ b/arch/arm/dts/sun50i-h6-beelink-gs1.dts
|
||||
@@ -14,6 +14,7 @@
|
||||
compatible = "azw,beelink-gs1", "allwinner,sun50i-h6";
|
||||
|
||||
aliases {
|
||||
+ ethernet0 = &emac;
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
@@ -21,6 +22,17 @@
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
+ connector {
|
||||
+ compatible = "hdmi-connector";
|
||||
+ type = "a";
|
||||
+
|
||||
+ port {
|
||||
+ hdmi_con_in: endpoint {
|
||||
+ remote-endpoint = <&hdmi_out_con>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
@@ -41,6 +53,40 @@
|
||||
};
|
||||
};
|
||||
|
||||
+&de {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ehci0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&emac {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&ext_rgmii_pins>;
|
||||
+ phy-mode = "rgmii";
|
||||
+ phy-handle = <&ext_rgmii_phy>;
|
||||
+ phy-supply = <®_aldo2>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&hdmi {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&hdmi_out {
|
||||
+ hdmi_out_con: endpoint {
|
||||
+ remote-endpoint = <&hdmi_con_in>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&mdio {
|
||||
+ ext_rgmii_phy: ethernet-phy@1 {
|
||||
+ compatible = "ethernet-phy-ieee802.3-c22";
|
||||
+ reg = <1>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
&mmc0 {
|
||||
vmmc-supply = <®_cldo1>;
|
||||
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
|
||||
@@ -57,6 +103,15 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&ohci0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pio {
|
||||
+ vcc-pd-supply = <®_cldo1>;
|
||||
+ vcc-pg-supply = <®_aldo1>;
|
||||
+};
|
||||
+
|
||||
&r_i2c {
|
||||
status = "okay";
|
||||
|
||||
@@ -177,8 +232,29 @@
|
||||
};
|
||||
};
|
||||
|
||||
+&r_pio {
|
||||
+ /*
|
||||
+ * PL0 and PL1 are used for PMIC I2C
|
||||
+ * don't enable the pl-supply else
|
||||
+ * it will fail at boot
|
||||
+ *
|
||||
+ * vcc-pl-supply = <®_aldo1>;
|
||||
+ */
|
||||
+ vcc-pm-supply = <®_aldo1>;
|
||||
+};
|
||||
+
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_ph_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
+
|
||||
+&usb2otg {
|
||||
+ dr_mode = "host";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb2phy {
|
||||
+ usb0_vbus-supply = <®_vcc5v>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
diff --git a/arch/arm/dts/sun50i-h6-pine-h64.dts b/arch/arm/dts/sun50i-h6-pine-h64.dts
|
||||
index 4802902e12..1898345183 100644
|
||||
--- a/arch/arm/dts/sun50i-h6-pine-h64.dts
|
||||
+++ b/arch/arm/dts/sun50i-h6-pine-h64.dts
|
||||
@@ -127,6 +127,12 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&pio {
|
||||
+ vcc-pc-supply = <®_bldo2>;
|
||||
+ vcc-pd-supply = <®_cldo1>;
|
||||
+ vcc-pg-supply = <®_aldo1>;
|
||||
+};
|
||||
+
|
||||
&r_i2c {
|
||||
status = "okay";
|
||||
|
||||
@@ -243,10 +249,16 @@
|
||||
pcf8563: rtc@51 {
|
||||
compatible = "nxp,pcf8563";
|
||||
reg = <0x51>;
|
||||
+ interrupt-parent = <&r_intc>;
|
||||
+ interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
#clock-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
+&r_pio {
|
||||
+ vcc-pm-supply = <®_aldo1>;
|
||||
+};
|
||||
+
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_ph_pins>;
|
||||
diff --git a/arch/arm/dts/sun50i-h6.dtsi b/arch/arm/dts/sun50i-h6.dtsi
|
||||
index e0dc4a05c1..a117f479ae 100644
|
||||
--- a/arch/arm/dts/sun50i-h6.dtsi
|
||||
+++ b/arch/arm/dts/sun50i-h6.dtsi
|
||||
@@ -101,7 +101,7 @@
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
- display-engine@1000000 {
|
||||
+ bus@1000000 {
|
||||
compatible = "allwinner,sun50i-h6-de3",
|
||||
"allwinner,sun50i-a64-de2";
|
||||
reg = <0x1000000 0x400000>;
|
||||
@@ -203,11 +203,32 @@
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
+ dma: dma-controller@3002000 {
|
||||
+ compatible = "allwinner,sun50i-h6-dma";
|
||||
+ reg = <0x03002000 0x1000>;
|
||||
+ interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&ccu CLK_BUS_DMA>, <&ccu CLK_MBUS_DMA>;
|
||||
+ clock-names = "bus", "mbus";
|
||||
+ dma-channels = <16>;
|
||||
+ dma-requests = <46>;
|
||||
+ resets = <&ccu RST_BUS_DMA>;
|
||||
+ #dma-cells = <1>;
|
||||
+ };
|
||||
+
|
||||
sid: sid@3006000 {
|
||||
compatible = "allwinner,sun50i-h6-sid";
|
||||
reg = <0x03006000 0x400>;
|
||||
};
|
||||
|
||||
+ watchdog: watchdog@30090a0 {
|
||||
+ compatible = "allwinner,sun50i-h6-wdt",
|
||||
+ "allwinner,sun6i-a31-wdt";
|
||||
+ reg = <0x030090a0 0x20>;
|
||||
+ interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ /* Broken on some H6 boards */
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
pio: pinctrl@300b000 {
|
||||
compatible = "allwinner,sun50i-h6-pinctrl";
|
||||
reg = <0x0300b000 0x400>;
|
||||
@@ -243,6 +264,18 @@
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
+ /*
|
||||
+ * /omit-if-no-ref/ isn't supported by U-boot
|
||||
+ * keep this comment to avoid bad sync with Linux
|
||||
+ */
|
||||
+ mmc1_pins: mmc1-pins {
|
||||
+ pins = "PG0", "PG1", "PG2", "PG3",
|
||||
+ "PG4", "PG5";
|
||||
+ function = "mmc1";
|
||||
+ drive-strength = <30>;
|
||||
+ bias-pull-up;
|
||||
+ };
|
||||
+
|
||||
mmc2_pins: mmc2-pins {
|
||||
pins = "PC1", "PC4", "PC5", "PC6",
|
||||
"PC7", "PC8", "PC9", "PC10",
|
||||
@@ -294,6 +327,8 @@
|
||||
resets = <&ccu RST_BUS_MMC1>;
|
||||
reset-names = "ahb";
|
||||
interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&mmc1_pins>;
|
||||
status = "disabled";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
@@ -445,7 +480,6 @@
|
||||
resets = <&ccu RST_BUS_OHCI3>,
|
||||
<&ccu RST_BUS_EHCI3>;
|
||||
phys = <&usb2phy 3>;
|
||||
- phy-names = "usb";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -457,7 +491,6 @@
|
||||
<&ccu CLK_USB_OHCI3>;
|
||||
resets = <&ccu RST_BUS_OHCI3>;
|
||||
phys = <&usb2phy 3>;
|
||||
- phy-names = "usb";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -613,6 +646,13 @@
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
+ r_watchdog: watchdog@7020400 {
|
||||
+ compatible = "allwinner,sun50i-h6-wdt",
|
||||
+ "allwinner,sun6i-a31-wdt";
|
||||
+ reg = <0x07020400 0x20>;
|
||||
+ interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ };
|
||||
+
|
||||
r_intc: interrupt-controller@7021000 {
|
||||
compatible = "allwinner,sun50i-h6-r-intc",
|
||||
"allwinner,sun6i-a31-r-intc";
|
||||
--
|
||||
2.20.1
|
||||
|
||||
@@ -1,20 +1,17 @@
|
||||
setenv bootargs ''
|
||||
|
||||
setenv initrd_high 0xffffffff
|
||||
m4=''
|
||||
kernelimage=zImage
|
||||
bootcommand=bootz
|
||||
a_base=0x10000000
|
||||
|
||||
#grab 1st 2/3 characters of string
|
||||
setexpr cpu2 sub "^(..?).*" "\\1" "${imx_cpu}"
|
||||
setexpr cpu3 sub "^(..?.?).*" "\\1" "${imx_cpu}"
|
||||
if itest.s x51 == "x${cpu2}" ; then
|
||||
if itest.s x51 == "x${imx_cpu}" ; then
|
||||
a_base=0x90000000
|
||||
elif itest.s x53 == "x${cpu2}"; then
|
||||
elif itest.s x53 == "x${imx_cpu}"; then
|
||||
a_base=0x70000000
|
||||
elif itest.s x6SX == "x${cpu3}" || itest.s x6U == "x${cpu2}" || itest.s x7D == "x${cpu2}"; then
|
||||
elif itest.s x6SX == "x${imx_cpu}" || itest.s x7D == "x${imx_cpu}"; then
|
||||
a_base=0x80000000
|
||||
elif itest.s x8M == "x${cpu2}"; then
|
||||
elif itest.s x8MQ == "x${imx_cpu}"; then
|
||||
a_base=0x40000000
|
||||
kernelimage=Image
|
||||
bootcommand=booti
|
||||
@@ -27,7 +24,8 @@ fi
|
||||
setexpr a_script ${a_base} + 0x00800000
|
||||
setexpr a_zImage ${a_base} + 0x00800000
|
||||
setexpr a_fdt ${a_base} + 0x03000000
|
||||
setexpr a_initrd ${a_base} + 0x03100000
|
||||
setexpr a_ramdisk ${a_base} + 0x03800000
|
||||
setexpr a_initrd ${a_base} + 0x03a00000
|
||||
setexpr a_reset_cause_marker ${a_base} + 0x80
|
||||
setexpr a_reset_cause ${a_base} + 0x84
|
||||
|
||||
@@ -37,32 +35,22 @@ if itest.s "x" == "x${board}" ; then
|
||||
fi
|
||||
|
||||
if itest.s "x" == "x${fdt_file}" ; then
|
||||
if itest.s x51 == "x${cpu2}" ; then
|
||||
fdt_file=imx51-${board}${m4}.dtb;
|
||||
elif itest.s x53 == "x${cpu2}" ; then
|
||||
fdt_file=imx53-${board}${m4}.dtb;
|
||||
elif itest.s x6DL == "x${cpu3}" || itest.s x6SO == "x${cpu3}" ; then
|
||||
if itest.s x6SOLO == "x${imx_cpu}" ; then
|
||||
fdt_file=imx6dl-${board}.dtb;
|
||||
elif itest.s x6QP == "x${cpu3}" ; then
|
||||
elif itest.s x6DL == "x${imx_cpu}" ; then
|
||||
fdt_file=imx6dl-${board}.dtb;
|
||||
elif itest.s x6QP == "x${imx_cpu}" ; then
|
||||
fdt_file=imx6qp-${board}.dtb;
|
||||
elif itest.s x6SX == "x${cpu3}" ; then
|
||||
elif itest.s x6SX == "x${imx_cpu}" ; then
|
||||
fdt_file=imx6sx-${board}${m4}.dtb;
|
||||
elif itest.s x6UL == "x${cpu3}" ; then
|
||||
fdt_file=imx6ull-${board}.dtb;
|
||||
elif itest.s x7D == "x${cpu2}" ; then
|
||||
elif itest.s x7D == "x${imx_cpu}" ; then
|
||||
fdt_file=imx7d-${board}${m4}.dtb;
|
||||
elif itest.s x8MM == "x${cpu3}" ; then
|
||||
fdt_file=imx8mm-${board}${m4}.dtb;
|
||||
elif itest.s x8MN == "x${cpu3}" ; then
|
||||
fdt_file=imx8mn-${board}${m4}.dtb;
|
||||
elif itest.s x8MP == "x${cpu3}" ; then
|
||||
if itest *0x30360800 == 0x00824310 ; then
|
||||
fdt_file=imx8mp-a0-${board}${m4}.dtb;
|
||||
else
|
||||
fdt_file=imx8mp-${board}${m4}.dtb;
|
||||
fi
|
||||
elif itest.s x8MQ == "x${cpu3}" ; then
|
||||
elif itest.s x8MQ == "x${imx_cpu}" ; then
|
||||
fdt_file=imx8mq-${board}${m4}.dtb;
|
||||
elif itest.s x51 == "x${imx_cpu}" ; then
|
||||
fdt_file=imx51-${board}.dtb;
|
||||
elif itest.s x53 == "x${imx_cpu}" ; then
|
||||
fdt_file=imx53-${board}.dtb;
|
||||
else
|
||||
fdt_file=imx6q-${board}.dtb;
|
||||
fi
|
||||
@@ -76,38 +64,31 @@ if load ${devtype} ${devnum}:${distro_bootpart} ${a_script} uEnv.txt ; then
|
||||
env import -t ${a_script} ${filesize}
|
||||
fi
|
||||
|
||||
if itest.s x${console} != x ; then
|
||||
setenv bootargs ${bootargs} console=${console},115200
|
||||
fi
|
||||
if itest.s "x" == "x$vmalloc" ; then
|
||||
vmalloc=400M
|
||||
fi
|
||||
if itest.s x${consoleblank} == x ; then
|
||||
consoleblank=0
|
||||
fi
|
||||
setenv bootargs ${bootargs} vmalloc=${vmalloc} consoleblank=${consoleblank} rootwait fixrtc cpu=${imx_cpu} board=${board} uboot_release=${uboot_release}
|
||||
setenv bootargs ${bootargs} console=${console},115200 vmalloc=400M consoleblank=0 rootwait fixrtc cpu=${imx_cpu} board=${board}
|
||||
|
||||
if load ${devtype} ${devnum}:${distro_bootpart} ${a_fdt} ${prefix}${fdt_file} ; then
|
||||
fdt addr ${a_fdt}
|
||||
setenv fdt_high 0xffffffff
|
||||
else
|
||||
echo "!!!! Error loading ${prefix}${fdt_file}";
|
||||
exit;
|
||||
fi
|
||||
|
||||
fdt resize 4096
|
||||
if itest.s "x" != "x${cmd_board}" ; then
|
||||
run cmd_board
|
||||
fi
|
||||
fdt resize
|
||||
if itest.s "x" != "x${cmd_custom}" ; then
|
||||
run cmd_custom
|
||||
fi
|
||||
if itest.s "x" != "x${cmd_hdmi}" ; then
|
||||
run cmd_hdmi
|
||||
if itest.s x != x${allow_noncea} ; then
|
||||
if itest.s x == x${allow_noncea} ; then
|
||||
setenv bootargs ${bootargs} mxc_hdmi.only_cea=1;
|
||||
echo "only CEA modes allowed on HDMI port";
|
||||
else
|
||||
setenv bootargs ${bootargs} mxc_hdmi.only_cea=0;
|
||||
echo "non-CEA modes allowed on HDMI, audio may be affected";
|
||||
fi
|
||||
fi
|
||||
|
||||
if itest.s "x" != "x${cmd_lcd}" ; then
|
||||
run cmd_lcd
|
||||
fi
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
#!/bin/sh
|
||||
|
||||
support/scripts/genimage.sh -c $(dirname $0)/genimage.cfg
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
|
||||
GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
|
||||
|
||||
rm -rf "${GENIMAGE_TMP}"
|
||||
|
||||
genimage \
|
||||
--rootpath "${TARGET_DIR}" \
|
||||
--tmppath "${GENIMAGE_TMP}" \
|
||||
--inputpath "${BINARIES_DIR}" \
|
||||
--outputpath "${BINARIES_DIR}" \
|
||||
--config "${GENIMAGE_CFG}"
|
||||
|
||||
exit $?
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Buildroot for Boundary Devices platforms:
|
||||
|
||||
https://boundarydevices.com/nitrogen-sbcs-and-soms/
|
||||
https://boundarydevices.com/product-category/popular-sbc-and-som-modules/
|
||||
|
||||
Here is the list of targeted platforms per defconfig:
|
||||
|
||||
@@ -19,22 +19,7 @@ Here is the list of targeted platforms per defconfig:
|
||||
- nitrogen7_defconfig
|
||||
- Nitrogen7
|
||||
|
||||
- nitrogen8m_defconfig
|
||||
- Nitrogen8M
|
||||
- Nitrogen8M_SOM
|
||||
|
||||
- nitrogen8mm_defconfig
|
||||
- Nitrogen8MMini
|
||||
- Nitrogen8MMini_SOM
|
||||
|
||||
- nitrogen8mn_defconfig
|
||||
- Nitrogen8MNano
|
||||
- Nitrogen8MNano_SOM
|
||||
|
||||
- nitrogen8mp_defconfig
|
||||
- Nitrogen8MPlus_SOM
|
||||
|
||||
To install, simply copy the image to your storage (SD, eMMC, USB):
|
||||
To install, simply copy the image to a uSD card:
|
||||
|
||||
$ sudo dd if=output/images/sdcard.img of=/dev/sdX
|
||||
|
||||
@@ -43,9 +28,3 @@ Where 'sdX' is the device node of the uSD partition.
|
||||
To upgrade u-boot, cancel autoboot and type:
|
||||
|
||||
> run upgradeu
|
||||
|
||||
See Boundary Devices's buildroot-external-boundary project
|
||||
for additional and advanced defconfigs using Qt5, gstreamer,
|
||||
NXP proprietary packages with demo applications:
|
||||
|
||||
https://github.com/boundarydevices/buildroot-external-boundary
|
||||
|
||||
@@ -9,24 +9,15 @@ qspi_offset=0x0
|
||||
a_base=0x12000000
|
||||
block_size=0x200
|
||||
|
||||
#grab 1st 2/3 characters of string
|
||||
setexpr cpu2 sub "^(..?).*" "\\1" "${imx_cpu}"
|
||||
setexpr cpu3 sub "^(..?.?).*" "\\1" "${imx_cpu}"
|
||||
if itest.s x51 == "x${cpu2}"; then
|
||||
if itest.s x51 == "x${imx_cpu}"; then
|
||||
a_base=0x92000000
|
||||
elif itest.s x53 == "x${cpu2}"; then
|
||||
elif itest.s x53 == "x${imx_cpu}"; then
|
||||
a_base=0x72000000
|
||||
elif itest.s x6SX == "x${cpu3}" || itest.s x6U == "x${cpu2}" || itest.s x7D == "x${cpu2}"; then
|
||||
elif itest.s x6SX == "x${imx_cpu}" || itest.s x7D == "x${imx_cpu}"; then
|
||||
a_base=0x82000000
|
||||
elif itest.s x8M == "x${cpu2}"; then
|
||||
elif itest.s x8MQ == "x${imx_cpu}"; then
|
||||
a_base=0x42000000
|
||||
offset=0x8400
|
||||
if itest.s x8MN == "x${cpu3}" || itest.s x8MP == "x${cpu3}"; then
|
||||
offset=0x8000
|
||||
if itest ${env_part} != 0 ; then
|
||||
offset=0x0
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
qspi_match=1
|
||||
@@ -36,10 +27,7 @@ setexpr a_uImage1 ${a_qspi1} + 0x400
|
||||
setexpr a_uImage2 ${a_qspi2} + 0x400
|
||||
setexpr a_script ${a_base}
|
||||
|
||||
if itest.s "x${vidconsole}" == "x" ; then
|
||||
vidconsole=vga
|
||||
fi
|
||||
setenv stdout serial,${vidconsole}
|
||||
setenv stdout serial,vga
|
||||
|
||||
if itest.s "x${sfname}" == "x" ; then
|
||||
# U-Boot resides in (e)MMC
|
||||
@@ -68,7 +56,6 @@ mmc dev ${env_dev} ${env_part}
|
||||
mmc read ${a_uImage2} ${cntoffset} ${cntfile}
|
||||
if cmp.b ${a_uImage1} ${a_uImage2} ${filesize} ; then
|
||||
echo "------- U-Boot versions match" ;
|
||||
echo "------- U-Boot upgrade NOT needed" ;
|
||||
exit ;
|
||||
fi
|
||||
|
||||
@@ -147,7 +134,7 @@ fi
|
||||
if cmp.b ${a_uImage1} ${a_uImage2} $filesize ; then
|
||||
echo "------- U-Boot versions match" ;
|
||||
if itest.s "${qspi_match}" == "1" ; then
|
||||
echo "------- U-Boot upgrade NOT needed" ;
|
||||
echo "------- upgrade not needed" ;
|
||||
if itest.s "x" != "x${next}" ; then
|
||||
if ${fs}load ${devtype} ${devnum}:${distro_bootpart} ${a_script} ${next} ; then
|
||||
source ${a_script}
|
||||
@@ -219,12 +206,6 @@ if itest.s "x" != "x${next}" ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if itest.s "xno" == "x${reset}" ; then
|
||||
while echo "---- U-Boot upgraded. Please reset the board" ; do
|
||||
sleep 120
|
||||
done
|
||||
fi
|
||||
echo "---- U-Boot upgraded. The board will now reset."
|
||||
sleep 1
|
||||
reset
|
||||
while echo "---- U-Boot upgraded. Please reset the board" ; do
|
||||
sleep 120
|
||||
done
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
root=PARTUUID=%U/PARTNROFF=1 rootwait rw noinitrd kern_guid=%U console=tty0
|
||||
@@ -1,38 +0,0 @@
|
||||
/dts-v1/;
|
||||
|
||||
/ {
|
||||
description = "Chrome OS kernel image with FDT";
|
||||
#address-cells = <1>;
|
||||
|
||||
images {
|
||||
kernel-1 {
|
||||
data = /incbin/("Image");
|
||||
type = "kernel_noload";
|
||||
arch = "arm64";
|
||||
os = "linux";
|
||||
compression = "none";
|
||||
load = <0>;
|
||||
entry = <0>;
|
||||
};
|
||||
|
||||
fdt-1 {
|
||||
description = "mt8173-elm.dtb";
|
||||
data = /incbin/("mt8173-elm.dtb");
|
||||
type = "flat_dt";
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
|
||||
hash-1 {
|
||||
algo = "sha1";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
configurations {
|
||||
default = "conf-1";
|
||||
conf-1 {
|
||||
kernel = "kernel-1";
|
||||
fdt = "fdt-1";
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -1,477 +0,0 @@
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_NO_HZ_IDLE=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_PREEMPT=y
|
||||
CONFIG_IRQ_TIME_ACCOUNTING=y
|
||||
CONFIG_BSD_PROCESS_ACCT=y
|
||||
CONFIG_BSD_PROCESS_ACCT_V3=y
|
||||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_NUMA_BALANCING=y
|
||||
CONFIG_MEMCG=y
|
||||
CONFIG_BLK_CGROUP=y
|
||||
CONFIG_CGROUP_PIDS=y
|
||||
CONFIG_CGROUP_HUGETLB=y
|
||||
CONFIG_CPUSETS=y
|
||||
CONFIG_CGROUP_DEVICE=y
|
||||
CONFIG_CGROUP_CPUACCT=y
|
||||
CONFIG_CGROUP_PERF=y
|
||||
CONFIG_USER_NS=y
|
||||
CONFIG_SCHED_AUTOGROUP=y
|
||||
CONFIG_RELAY=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
# CONFIG_COMPAT_BRK is not set
|
||||
CONFIG_SLAB=y
|
||||
CONFIG_PROFILING=y
|
||||
CONFIG_ARCH_MEDIATEK=y
|
||||
CONFIG_ARM64_VA_BITS_48=y
|
||||
CONFIG_SCHED_MC=y
|
||||
CONFIG_SCHED_SMT=y
|
||||
CONFIG_NR_CPUS=4
|
||||
CONFIG_NUMA=y
|
||||
CONFIG_PARAVIRT=y
|
||||
CONFIG_CRASH_DUMP=y
|
||||
CONFIG_COMPAT=y
|
||||
CONFIG_RANDOMIZE_BASE=y
|
||||
# CONFIG_EFI is not set
|
||||
# CONFIG_SUSPEND is not set
|
||||
CONFIG_PM=y
|
||||
CONFIG_PM_DEBUG=y
|
||||
CONFIG_PM_ADVANCED_DEBUG=y
|
||||
CONFIG_CPU_IDLE=y
|
||||
CONFIG_CPU_IDLE_GOV_LADDER=y
|
||||
CONFIG_ARM_CPUIDLE=y
|
||||
CONFIG_ARM_PSCI_CPUIDLE=y
|
||||
CONFIG_CPU_FREQ=y
|
||||
CONFIG_CPU_FREQ_STAT=y
|
||||
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
|
||||
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
|
||||
CONFIG_CPU_FREQ_GOV_USERSPACE=y
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
|
||||
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
|
||||
CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
|
||||
CONFIG_CPUFREQ_DT=y
|
||||
CONFIG_ARM_SCPI_CPUFREQ=y
|
||||
CONFIG_ARM_MEDIATEK_CPUFREQ=y
|
||||
CONFIG_ARM_SCPI_PROTOCOL=y
|
||||
CONFIG_JUMP_LABEL=y
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
# CONFIG_BLK_DEBUG_FS is not set
|
||||
# CONFIG_MQ_IOSCHED_KYBER is not set
|
||||
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
|
||||
CONFIG_KSM=y
|
||||
CONFIG_MEMORY_FAILURE=y
|
||||
CONFIG_TRANSPARENT_HUGEPAGE=y
|
||||
CONFIG_CMA=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_UNIX_DIAG=y
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_MULTICAST=y
|
||||
CONFIG_INET_UDP_DIAG=y
|
||||
# CONFIG_IPV6 is not set
|
||||
CONFIG_CFG80211=y
|
||||
# CONFIG_CFG80211_DEFAULT_PS is not set
|
||||
CONFIG_MAC80211=y
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
CONFIG_FW_LOADER_USER_HELPER=y
|
||||
CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y
|
||||
CONFIG_BRCMSTB_GISB_ARB=y
|
||||
CONFIG_VEXPRESS_CONFIG=y
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
CONFIG_MTD_CFI=y
|
||||
CONFIG_MTD_CFI_ADV_OPTIONS=y
|
||||
CONFIG_MTD_CFI_INTELEXT=y
|
||||
CONFIG_MTD_CFI_AMDSTD=y
|
||||
CONFIG_MTD_CFI_STAA=y
|
||||
CONFIG_MTD_PHYSMAP=y
|
||||
CONFIG_MTD_PHYSMAP_OF=y
|
||||
CONFIG_MTD_DATAFLASH=y
|
||||
CONFIG_MTD_SST25L=y
|
||||
CONFIG_MTD_RAW_NAND=y
|
||||
CONFIG_MTD_NAND_DENALI_DT=y
|
||||
CONFIG_MTD_SPI_NOR=y
|
||||
CONFIG_OF_OVERLAY=y
|
||||
# CONFIG_BLK_DEV is not set
|
||||
CONFIG_SRAM=y
|
||||
CONFIG_EEPROM_AT24=m
|
||||
CONFIG_EEPROM_AT25=m
|
||||
CONFIG_RAID_ATTRS=m
|
||||
CONFIG_SCSI=y
|
||||
# CONFIG_SCSI_PROC_FS is not set
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_SCSI_SAS_LIBSAS=y
|
||||
CONFIG_SCSI_UFSHCD=y
|
||||
CONFIG_SCSI_UFSHCD_PLATFORM=y
|
||||
CONFIG_MD=y
|
||||
CONFIG_BLK_DEV_MD=m
|
||||
CONFIG_BLK_DEV_DM=m
|
||||
CONFIG_DM_MIRROR=m
|
||||
CONFIG_DM_ZERO=m
|
||||
CONFIG_NETDEVICES=y
|
||||
# CONFIG_ETHERNET is not set
|
||||
CONFIG_PHYLIB=y
|
||||
CONFIG_USB_CATC=m
|
||||
CONFIG_USB_KAWETH=m
|
||||
CONFIG_USB_PEGASUS=m
|
||||
CONFIG_USB_RTL8150=m
|
||||
CONFIG_USB_RTL8152=m
|
||||
CONFIG_USB_LAN78XX=m
|
||||
CONFIG_USB_USBNET=m
|
||||
CONFIG_USB_NET_CDC_EEM=m
|
||||
CONFIG_USB_NET_HUAWEI_CDC_NCM=m
|
||||
CONFIG_USB_NET_CDC_MBIM=m
|
||||
CONFIG_USB_NET_DM9601=m
|
||||
CONFIG_USB_NET_SR9700=m
|
||||
CONFIG_USB_NET_SR9800=m
|
||||
CONFIG_USB_NET_SMSC75XX=m
|
||||
CONFIG_USB_NET_SMSC95XX=m
|
||||
CONFIG_USB_NET_GL620A=m
|
||||
CONFIG_USB_NET_PLUSB=m
|
||||
CONFIG_USB_NET_MCS7830=m
|
||||
CONFIG_USB_NET_RNDIS_HOST=m
|
||||
CONFIG_USB_ALI_M5632=y
|
||||
CONFIG_USB_AN2720=y
|
||||
CONFIG_USB_EPSON2888=y
|
||||
CONFIG_USB_KC2190=y
|
||||
CONFIG_USB_NET_CX82310_ETH=m
|
||||
CONFIG_USB_NET_KALMIA=m
|
||||
CONFIG_USB_NET_QMI_WWAN=m
|
||||
CONFIG_USB_NET_INT51X1=m
|
||||
CONFIG_USB_IPHETH=m
|
||||
CONFIG_USB_SIERRA_NET=m
|
||||
CONFIG_USB_VL600=m
|
||||
CONFIG_USB_NET_CH9200=m
|
||||
CONFIG_USB_NET_AQC111=m
|
||||
# CONFIG_WLAN_VENDOR_ADMTEK is not set
|
||||
# CONFIG_WLAN_VENDOR_ATH is not set
|
||||
# CONFIG_WLAN_VENDOR_ATMEL is not set
|
||||
# CONFIG_WLAN_VENDOR_BROADCOM is not set
|
||||
# CONFIG_WLAN_VENDOR_CISCO is not set
|
||||
# CONFIG_WLAN_VENDOR_INTEL is not set
|
||||
# CONFIG_WLAN_VENDOR_INTERSIL is not set
|
||||
CONFIG_MWIFIEX=m
|
||||
CONFIG_MWIFIEX_SDIO=m
|
||||
# CONFIG_WLAN_VENDOR_MEDIATEK is not set
|
||||
# CONFIG_WLAN_VENDOR_RALINK is not set
|
||||
# CONFIG_WLAN_VENDOR_REALTEK is not set
|
||||
# CONFIG_WLAN_VENDOR_RSI is not set
|
||||
# CONFIG_WLAN_VENDOR_ST is not set
|
||||
# CONFIG_WLAN_VENDOR_TI is not set
|
||||
# CONFIG_WLAN_VENDOR_ZYDAS is not set
|
||||
# CONFIG_WLAN_VENDOR_QUANTENNA is not set
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
CONFIG_KEYBOARD_ADC=m
|
||||
CONFIG_KEYBOARD_GPIO=y
|
||||
CONFIG_KEYBOARD_CROS_EC=y
|
||||
CONFIG_MOUSE_ELAN_I2C=y
|
||||
CONFIG_INPUT_TOUCHSCREEN=y
|
||||
CONFIG_TOUCHSCREEN_ATMEL_MXT=m
|
||||
CONFIG_TOUCHSCREEN_ELAN=y
|
||||
CONFIG_INPUT_MISC=y
|
||||
# CONFIG_SERIO_SERPORT is not set
|
||||
CONFIG_SERIO_AMBAKMI=y
|
||||
CONFIG_LEGACY_PTY_COUNT=16
|
||||
CONFIG_SERIAL_8250=y
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
CONFIG_SERIAL_8250_EXTENDED=y
|
||||
CONFIG_SERIAL_8250_SHARE_IRQ=y
|
||||
CONFIG_SERIAL_8250_DW=y
|
||||
CONFIG_SERIAL_8250_MT6577=y
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
CONFIG_SERIAL_AMBA_PL011=y
|
||||
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
|
||||
CONFIG_SERIAL_XILINX_PS_UART=y
|
||||
CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
|
||||
CONFIG_SERIAL_FSL_LPUART=y
|
||||
CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
|
||||
CONFIG_SERIAL_FSL_LINFLEXUART=y
|
||||
CONFIG_SERIAL_FSL_LINFLEXUART_CONSOLE=y
|
||||
CONFIG_SERIAL_DEV_BUS=y
|
||||
CONFIG_VIRTIO_CONSOLE=y
|
||||
CONFIG_IPMI_HANDLER=m
|
||||
CONFIG_IPMI_DEVICE_INTERFACE=m
|
||||
CONFIG_IPMI_SI=m
|
||||
CONFIG_TCG_TPM=y
|
||||
CONFIG_TCG_TIS_I2C_INFINEON=y
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_I2C_MUX_PCA954x=y
|
||||
CONFIG_I2C_DESIGNWARE_PLATFORM=y
|
||||
CONFIG_I2C_GPIO=m
|
||||
CONFIG_I2C_MT65XX=y
|
||||
CONFIG_I2C_RK3X=y
|
||||
CONFIG_I2C_SLAVE=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_CADENCE_QUADSPI=y
|
||||
CONFIG_SPI_NXP_FLEXSPI=y
|
||||
CONFIG_SPI_GPIO=y
|
||||
CONFIG_SPI_MT65XX=y
|
||||
CONFIG_SPI_PL022=y
|
||||
CONFIG_SPI_ROCKCHIP=y
|
||||
CONFIG_SPI_SPIDEV=y
|
||||
CONFIG_PINCTRL_SINGLE=y
|
||||
CONFIG_PINCTRL_MAX77620=y
|
||||
CONFIG_GPIO_ALTERA=m
|
||||
CONFIG_GPIO_DWAPB=y
|
||||
CONFIG_GPIO_MB86S7X=y
|
||||
CONFIG_GPIO_PL061=y
|
||||
CONFIG_GPIO_XGENE=y
|
||||
CONFIG_GPIO_MAX732X=y
|
||||
CONFIG_GPIO_PCA953X=y
|
||||
CONFIG_GPIO_PCA953X_IRQ=y
|
||||
CONFIG_GPIO_BD9571MWV=m
|
||||
CONFIG_GPIO_MAX77620=y
|
||||
CONFIG_POWER_RESET_BRCMSTB=y
|
||||
CONFIG_POWER_RESET_XGENE=y
|
||||
CONFIG_POWER_RESET_SYSCON=y
|
||||
CONFIG_SYSCON_REBOOT_MODE=y
|
||||
CONFIG_BATTERY_SBS=m
|
||||
CONFIG_BATTERY_BQ27XXX=y
|
||||
CONFIG_SENSORS_ARM_SCPI=y
|
||||
CONFIG_SENSORS_LM90=m
|
||||
CONFIG_SENSORS_PWM_FAN=m
|
||||
CONFIG_SENSORS_INA2XX=m
|
||||
CONFIG_SENSORS_INA3221=m
|
||||
CONFIG_THERMAL=y
|
||||
CONFIG_CPU_THERMAL=y
|
||||
CONFIG_DEVFREQ_THERMAL=y
|
||||
CONFIG_THERMAL_EMULATION=y
|
||||
CONFIG_WATCHDOG=y
|
||||
CONFIG_MEDIATEK_WATCHDOG=y
|
||||
CONFIG_MFD_BD9571MWV=y
|
||||
CONFIG_MFD_AXP20X_I2C=y
|
||||
CONFIG_MFD_HI6421_PMIC=y
|
||||
CONFIG_MFD_MAX77620=y
|
||||
CONFIG_MFD_MT6397=y
|
||||
CONFIG_MFD_RK808=y
|
||||
CONFIG_MFD_SEC_CORE=y
|
||||
CONFIG_MFD_ROHM_BD718XX=y
|
||||
CONFIG_REGULATOR_DEBUG=y
|
||||
CONFIG_REGULATOR_FIXED_VOLTAGE=y
|
||||
CONFIG_REGULATOR_AXP20X=y
|
||||
CONFIG_REGULATOR_BD718XX=y
|
||||
CONFIG_REGULATOR_BD9571MWV=y
|
||||
CONFIG_REGULATOR_DA9211=y
|
||||
CONFIG_REGULATOR_FAN53555=y
|
||||
CONFIG_REGULATOR_GPIO=y
|
||||
CONFIG_REGULATOR_HI6421V530=y
|
||||
CONFIG_REGULATOR_MAX77620=y
|
||||
CONFIG_REGULATOR_MAX8973=y
|
||||
CONFIG_REGULATOR_MT6397=y
|
||||
CONFIG_REGULATOR_PFUZE100=y
|
||||
CONFIG_REGULATOR_PWM=y
|
||||
CONFIG_REGULATOR_RK808=y
|
||||
CONFIG_REGULATOR_S2MPS11=y
|
||||
CONFIG_REGULATOR_VCTRL=m
|
||||
CONFIG_MEDIA_SUPPORT=y
|
||||
CONFIG_MEDIA_CAMERA_SUPPORT=y
|
||||
CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
|
||||
CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
|
||||
CONFIG_MEDIA_SDR_SUPPORT=y
|
||||
CONFIG_VIDEO_V4L2_SUBDEV_API=y
|
||||
CONFIG_MEDIA_USB_SUPPORT=y
|
||||
CONFIG_USB_VIDEO_CLASS=m
|
||||
CONFIG_DRM=y
|
||||
CONFIG_DRM_I2C_CH7006=m
|
||||
CONFIG_DRM_I2C_SIL164=m
|
||||
CONFIG_DRM_I2C_NXP_TDA998X=m
|
||||
CONFIG_DRM_MALI_DISPLAY=m
|
||||
CONFIG_DRM_PANEL_LVDS=m
|
||||
CONFIG_DRM_PANEL_SIMPLE=y
|
||||
CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m
|
||||
CONFIG_DRM_DISPLAY_CONNECTOR=y
|
||||
CONFIG_DRM_PARADE_PS8640=y
|
||||
CONFIG_DRM_SII902X=m
|
||||
CONFIG_DRM_THINE_THC63LVD1024=m
|
||||
CONFIG_DRM_TI_SN65DSI86=m
|
||||
CONFIG_DRM_ANALOGIX_ANX78XX=y
|
||||
CONFIG_DRM_I2C_ADV7511=m
|
||||
CONFIG_DRM_MEDIATEK=y
|
||||
CONFIG_DRM_MEDIATEK_HDMI=y
|
||||
CONFIG_FB_MODE_HELPERS=y
|
||||
CONFIG_FB_SIMPLE=y
|
||||
CONFIG_BACKLIGHT_CLASS_DEVICE=y
|
||||
CONFIG_BACKLIGHT_PWM=y
|
||||
CONFIG_BACKLIGHT_LP855X=y
|
||||
CONFIG_SOUND=y
|
||||
CONFIG_SND=y
|
||||
CONFIG_SND_SOC=y
|
||||
CONFIG_SND_SOC_MT8173=y
|
||||
CONFIG_SND_SOC_MT8173_RT5650_RT5676=y
|
||||
CONFIG_I2C_HID=m
|
||||
CONFIG_USB_CONN_GPIO=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_XHCI_HCD=y
|
||||
CONFIG_USB_EHCI_HCD=y
|
||||
CONFIG_USB_EHCI_HCD_PLATFORM=y
|
||||
CONFIG_USB_OHCI_HCD=y
|
||||
CONFIG_USB_OHCI_HCD_PLATFORM=y
|
||||
CONFIG_USB_STORAGE=y
|
||||
CONFIG_USB_MTU3=y
|
||||
CONFIG_USB_MUSB_HDRC=y
|
||||
CONFIG_USB_DWC3=y
|
||||
CONFIG_USB_DWC2=y
|
||||
CONFIG_USB_CHIPIDEA=y
|
||||
CONFIG_USB_CHIPIDEA_UDC=y
|
||||
CONFIG_USB_CHIPIDEA_HOST=y
|
||||
CONFIG_USB_ISP1760=y
|
||||
CONFIG_USB_SERIAL=y
|
||||
CONFIG_USB_SERIAL_CONSOLE=y
|
||||
CONFIG_USB_SERIAL_PL2303=y
|
||||
CONFIG_USB_HSIC_USB3503=y
|
||||
CONFIG_NOP_USB_XCEIV=y
|
||||
CONFIG_USB_ULPI=y
|
||||
CONFIG_USB_GADGET=y
|
||||
CONFIG_USB_SNP_UDC_PLAT=y
|
||||
CONFIG_USB_BDC_UDC=y
|
||||
CONFIG_USB_ETH=m
|
||||
CONFIG_USB_ETH_EEM=y
|
||||
CONFIG_TYPEC=m
|
||||
CONFIG_TYPEC_TCPM=m
|
||||
CONFIG_TYPEC_FUSB302=m
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_BLOCK_MINORS=32
|
||||
CONFIG_MMC_ARMMMCI=y
|
||||
CONFIG_MMC_SDHCI=y
|
||||
CONFIG_MMC_SDHCI_PLTFM=y
|
||||
CONFIG_MMC_SDHCI_OF_ARASAN=y
|
||||
CONFIG_MMC_SDHCI_CADENCE=y
|
||||
CONFIG_MMC_SDHCI_F_SDH30=y
|
||||
CONFIG_MMC_SPI=y
|
||||
CONFIG_MMC_DW=y
|
||||
CONFIG_MMC_DW_EXYNOS=y
|
||||
CONFIG_MMC_DW_HI3798CV200=y
|
||||
CONFIG_MMC_DW_K3=y
|
||||
CONFIG_MMC_MTK=y
|
||||
CONFIG_MMC_SDHCI_XENON=y
|
||||
CONFIG_NEW_LEDS=y
|
||||
CONFIG_LEDS_CLASS=y
|
||||
CONFIG_LEDS_GPIO=y
|
||||
CONFIG_LEDS_PWM=y
|
||||
CONFIG_LEDS_SYSCON=y
|
||||
CONFIG_LEDS_TRIGGERS=y
|
||||
CONFIG_LEDS_TRIGGER_TIMER=y
|
||||
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
||||
CONFIG_LEDS_TRIGGER_CPU=y
|
||||
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
|
||||
CONFIG_LEDS_TRIGGER_PANIC=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_RTC_DRV_DS1307=m
|
||||
CONFIG_RTC_DRV_MAX77686=y
|
||||
CONFIG_RTC_DRV_RK808=m
|
||||
CONFIG_RTC_DRV_PCF85363=m
|
||||
CONFIG_RTC_DRV_RX8581=m
|
||||
CONFIG_RTC_DRV_S5M=y
|
||||
CONFIG_RTC_DRV_DS3232=y
|
||||
CONFIG_RTC_DRV_PCF2127=m
|
||||
CONFIG_RTC_DRV_PL031=y
|
||||
CONFIG_DMADEVICES=y
|
||||
CONFIG_FSL_EDMA=y
|
||||
CONFIG_MV_XOR_V2=y
|
||||
CONFIG_PL330_DMA=y
|
||||
CONFIG_MTK_CQDMA=y
|
||||
CONFIG_QCOM_HIDMA_MGMT=y
|
||||
CONFIG_QCOM_HIDMA=y
|
||||
# CONFIG_VIRTIO_MENU is not set
|
||||
CONFIG_CHROME_PLATFORMS=y
|
||||
CONFIG_CROS_EC=y
|
||||
CONFIG_CROS_EC_I2C=y
|
||||
CONFIG_CROS_EC_SPI=y
|
||||
CONFIG_COMMON_CLK_RK808=y
|
||||
CONFIG_COMMON_CLK_SCPI=y
|
||||
CONFIG_COMMON_CLK_CS2000_CP=y
|
||||
CONFIG_COMMON_CLK_S2MPS11=y
|
||||
CONFIG_COMMON_CLK_XGENE=y
|
||||
CONFIG_COMMON_CLK_PWM=y
|
||||
CONFIG_COMMON_CLK_VC5=y
|
||||
CONFIG_COMMON_CLK_MT6797_MMSYS=y
|
||||
CONFIG_COMMON_CLK_MT6797_IMGSYS=y
|
||||
CONFIG_COMMON_CLK_MT6797_VDECSYS=y
|
||||
CONFIG_COMMON_CLK_MT6797_VENCSYS=y
|
||||
CONFIG_HWSPINLOCK=y
|
||||
CONFIG_ARM_MHU=y
|
||||
CONFIG_PLATFORM_MHU=y
|
||||
CONFIG_ARM_SMMU=y
|
||||
CONFIG_ARM_SMMU_V3=y
|
||||
CONFIG_MTK_IOMMU=y
|
||||
CONFIG_REMOTEPROC=y
|
||||
CONFIG_MTK_CMDQ=y
|
||||
CONFIG_MTK_PMIC_WRAP=y
|
||||
CONFIG_EXTCON_USB_GPIO=y
|
||||
CONFIG_IIO=y
|
||||
CONFIG_MAX9611=m
|
||||
CONFIG_SENSORS_ISL29018=m
|
||||
CONFIG_MPL3115=m
|
||||
CONFIG_PWM=y
|
||||
CONFIG_PWM_MTK_DISP=y
|
||||
CONFIG_PWM_MEDIATEK=y
|
||||
CONFIG_PHY_XGENE=y
|
||||
CONFIG_PHY_FSL_IMX8MQ_USB=y
|
||||
CONFIG_PHY_MTK_TPHY=y
|
||||
CONFIG_PHY_QCOM_USB_HS=y
|
||||
CONFIG_PHY_SAMSUNG_USB2=y
|
||||
CONFIG_EXT2_FS=y
|
||||
CONFIG_EXT3_FS=y
|
||||
CONFIG_EXT4_FS_POSIX_ACL=y
|
||||
CONFIG_FANOTIFY=y
|
||||
CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
|
||||
CONFIG_QUOTA=y
|
||||
CONFIG_AUTOFS4_FS=y
|
||||
CONFIG_FUSE_FS=m
|
||||
CONFIG_CUSE=m
|
||||
CONFIG_OVERLAY_FS=y
|
||||
CONFIG_OVERLAY_FS_INDEX=y
|
||||
CONFIG_OVERLAY_FS_XINO_AUTO=y
|
||||
CONFIG_OVERLAY_FS_METACOPY=y
|
||||
CONFIG_VFAT_FS=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
CONFIG_HUGETLBFS=y
|
||||
CONFIG_CONFIGFS_FS=y
|
||||
CONFIG_PSTORE=y
|
||||
CONFIG_NFS_FS=m
|
||||
CONFIG_NFS_V3_ACL=y
|
||||
CONFIG_NFS_V4=m
|
||||
CONFIG_NFS_SWAP=y
|
||||
CONFIG_CIFS=m
|
||||
CONFIG_CIFS_STATS2=y
|
||||
CONFIG_CIFS_WEAK_PW_HASH=y
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_CRYPTO_CRYPTD=y
|
||||
CONFIG_CRYPTO_DH=m
|
||||
CONFIG_CRYPTO_ECDH=m
|
||||
CONFIG_CRYPTO_SEQIV=y
|
||||
CONFIG_CRYPTO_ECHAINIV=y
|
||||
CONFIG_CRYPTO_CBC=y
|
||||
CONFIG_CRYPTO_ECB=y
|
||||
CONFIG_CRYPTO_XXHASH=m
|
||||
CONFIG_CRYPTO_SHA1=y
|
||||
CONFIG_CRYPTO_SHA3=m
|
||||
CONFIG_CRYPTO_DES=m
|
||||
CONFIG_CRYPTO_ANSI_CPRNG=y
|
||||
CONFIG_CRYPTO_DEV_CCREE=m
|
||||
CONFIG_PACKING=y
|
||||
CONFIG_INDIRECT_PIO=y
|
||||
CONFIG_CRC_CCITT=m
|
||||
CONFIG_CRC_T10DIF=y
|
||||
CONFIG_LIBCRC32C=m
|
||||
CONFIG_DMA_CMA=y
|
||||
CONFIG_CMA_SIZE_MBYTES=32
|
||||
CONFIG_IRQ_POLL=y
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_DEBUG_INFO=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_DEBUG_FS=y
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
# CONFIG_DEBUG_PREEMPT is not set
|
||||
CONFIG_STACKTRACE=y
|
||||
# CONFIG_FTRACE is not set
|
||||
# CONFIG_STRICT_DEVMEM is not set
|
||||
@@ -1,56 +0,0 @@
|
||||
Mediatek MT8173 aka Chromebook Elm
|
||||
==================================
|
||||
|
||||
This file describes booting the Chromebook from an SD card containing
|
||||
Buildroot kernel and rootfs, using the original bootloader. This is
|
||||
the least invasive way to get Buildroot onto the devices and a good
|
||||
starting point.
|
||||
|
||||
The bootloader will only boot a kernel from a GPT partition marked
|
||||
bootable with cgpt tool from vboot-utils package.
|
||||
The kernel image must be signed using futility from the same package.
|
||||
The signing part is done by sign.sh script in this directory.
|
||||
|
||||
It does not really matter where rootfs is as long as the kernel is able
|
||||
to find it, but this particular configuration assumes the kernel is on
|
||||
partition 1 and rootfs is on partition 2 of the SD card.
|
||||
Make sure to check kernel.args if you change this.
|
||||
|
||||
Making the boot media
|
||||
---------------------
|
||||
Start by configuring and building the images.
|
||||
|
||||
make chromebook_elm_defconfig
|
||||
make menuconfig # if necessary
|
||||
make
|
||||
|
||||
The important files are:
|
||||
|
||||
uImage.kpart (kernel and device tree, signed)
|
||||
rootfs.tar
|
||||
bootsd.img (SD card image containing both kernel and rootfs)
|
||||
|
||||
Write the image directly to some SD card.
|
||||
WARNING: make sure there is nothing important on that card,
|
||||
and double-check the device name!
|
||||
|
||||
SD=/dev/mmcblk1 # may be /dev/sdX on some hosts
|
||||
dd if=output/images/bootsd.img of=$SD
|
||||
|
||||
Switching to developer mode and booting from SD
|
||||
-----------------------------------------------
|
||||
Power Chromebook down, then power it up while holding Esc+F3.
|
||||
BEWARE: switching to developer mode deletes all user data.
|
||||
Create backups if you need them.
|
||||
|
||||
While in developer mode, Chromebook will boot into a white screen saying
|
||||
"OS verification is off".
|
||||
|
||||
Press Ctrl-D at this screen to boot Chromium OS from eMMC.
|
||||
Press Ctrl-U at this screen to boot from SD (or USB)
|
||||
Press Power to power it off.
|
||||
Do NOT press Space unless you mean it.
|
||||
This will switch it back to normal mode.
|
||||
|
||||
The is no way to get rid of the white screen without re-flashing the bootloader.
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# This script creates u-boot FIT image containing the kernel and the DT,
|
||||
# then signs it using futility from vboot-utils.
|
||||
# The resulting file is called uImage.kpart.
|
||||
|
||||
BOARD_DIR=$(dirname $0)/${BOARD_NAME}
|
||||
mkimage=$HOST_DIR/bin/mkimage
|
||||
futility=$HOST_DIR/bin/futility
|
||||
devkeys=$HOST_DIR/share/vboot/devkeys
|
||||
|
||||
run() { echo "$@"; "$@"; }
|
||||
die() { echo "$@" >&2; exit 1; }
|
||||
test -f $BINARIES_DIR/Image || \
|
||||
die "No kernel image found"
|
||||
test -x $mkimage || \
|
||||
die "No mkimage found (host-uboot-tools has not been built?)"
|
||||
test -x $futility || \
|
||||
die "No futility found (host-vboot-utils has not been built?)"
|
||||
|
||||
# kernel.its references Image and mt8173-elm.dtb, and all three
|
||||
# files must be in current directory for mkimage.
|
||||
run cp $BOARD_DIR/kernel.its $BINARIES_DIR/kernel.its || exit 1
|
||||
echo "# entering $BINARIES_DIR for the next command"
|
||||
(cd $BINARIES_DIR && run $mkimage -f kernel.its uImage.itb) || exit 1
|
||||
|
||||
# futility requires non-empty file to be supplied with --bootloader
|
||||
# even if it does not make sense for the target platform.
|
||||
echo > $BINARIES_DIR/dummy.txt
|
||||
|
||||
run $futility vbutil_kernel \
|
||||
--keyblock $devkeys/kernel.keyblock \
|
||||
--signprivate $devkeys/kernel_data_key.vbprivk \
|
||||
--arch aarch64 \
|
||||
--version 1 \
|
||||
--config $BOARD_DIR/kernel.args \
|
||||
--vmlinuz $BINARIES_DIR/uImage.itb \
|
||||
--bootloader $BINARIES_DIR/dummy.txt \
|
||||
--pack $BINARIES_DIR/uImage.kpart || exit 1
|
||||
|
||||
rm -f $BINARIES_DIR/kernel.its $BINARIES_DIR/dummy.txt
|
||||
@@ -1,28 +1,28 @@
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition uboot-spl {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot-spl.bin"
|
||||
offset = 512
|
||||
}
|
||||
partition uboot-spl {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot-spl.bin"
|
||||
offset = 512
|
||||
}
|
||||
|
||||
partition uboot {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot.img"
|
||||
offset = 14K
|
||||
}
|
||||
partition uboot {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot.img"
|
||||
offset = 14k
|
||||
}
|
||||
|
||||
partition uboot-env {
|
||||
in-partition-table = "no"
|
||||
image = "uboot-env.bin"
|
||||
offset = 526K
|
||||
}
|
||||
partition uboot-env {
|
||||
in-partition-table = "no"
|
||||
image = "uboot-env.bin"
|
||||
offset = 526k
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
offset = 2M
|
||||
}
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
offset = 2M
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@ image boot.vfat {
|
||||
"boot.scr"
|
||||
}
|
||||
}
|
||||
|
||||
size = 10M
|
||||
}
|
||||
|
||||
@@ -20,8 +19,8 @@ image sdcard.img {
|
||||
partition u-boot {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot-sunxi-with-spl.bin"
|
||||
offset = 8K
|
||||
size = 1016K # 1MB - 8KB
|
||||
offset = 8192
|
||||
size = 1040384 # 1MB - 8192
|
||||
}
|
||||
|
||||
partition boot {
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition u-boot {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot.imx"
|
||||
offset = 1K
|
||||
}
|
||||
partition u-boot {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot.imx"
|
||||
offset = 1024
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext2"
|
||||
offset = 1M
|
||||
size = 60M
|
||||
}
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext2"
|
||||
offset = 1M
|
||||
size = 60M
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@ image boot.vfat {
|
||||
"imx6ul-geam-kit.dtb"
|
||||
}
|
||||
}
|
||||
|
||||
size = 64M
|
||||
}
|
||||
|
||||
@@ -16,7 +15,7 @@ image sdcard.img {
|
||||
partition SPL {
|
||||
in-partition-table = "no"
|
||||
image = "SPL"
|
||||
offset = 1K
|
||||
offset = 1024
|
||||
}
|
||||
|
||||
partition u-boot-dtb {
|
||||
|
||||
@@ -8,7 +8,6 @@ image boot.vfat {
|
||||
"imx6q-icore-ofcap12.dtb"
|
||||
}
|
||||
}
|
||||
|
||||
size = 64M
|
||||
}
|
||||
|
||||
@@ -19,7 +18,7 @@ image sdcard.img {
|
||||
partition SPL {
|
||||
in-partition-table = "no"
|
||||
image = "SPL"
|
||||
offset = 1K
|
||||
offset = 1024
|
||||
}
|
||||
|
||||
partition u-boot-dtb {
|
||||
|
||||
@@ -6,7 +6,6 @@ image boot.vfat {
|
||||
"imx6q-icore-rqs.dtb"
|
||||
}
|
||||
}
|
||||
|
||||
size = 64M
|
||||
}
|
||||
|
||||
@@ -17,7 +16,7 @@ image sdcard.img {
|
||||
partition SPL {
|
||||
in-partition-table = "no"
|
||||
image = "SPL"
|
||||
offset = 1K
|
||||
offset = 1024
|
||||
}
|
||||
|
||||
partition u-boot-dtb {
|
||||
|
||||
@@ -5,7 +5,6 @@ image boot.vfat {
|
||||
"imx6ul-isiot-emmc.dtb"
|
||||
}
|
||||
}
|
||||
|
||||
size = 64M
|
||||
}
|
||||
|
||||
@@ -16,7 +15,7 @@ image sdcard.img {
|
||||
partition SPL {
|
||||
in-partition-table = "no"
|
||||
image = "SPL"
|
||||
offset = 1K
|
||||
offset = 1024
|
||||
}
|
||||
|
||||
partition u-boot-dtb {
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
label RK3399RocPC linux
|
||||
kernel /boot/Image
|
||||
devicetree /boot/rk3399-roc-pc.dtb
|
||||
append earlycon=uart8250,mmio32,0xff1a0000 root=/dev/mmcblk0p1 rootwait
|
||||
@@ -1,22 +0,0 @@
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition u-boot-tpl-spl-dtb {
|
||||
in-partition-table = "no"
|
||||
image = "idbloader.img"
|
||||
offset = 32K
|
||||
}
|
||||
|
||||
partition u-boot-dtb {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot.itb"
|
||||
offset = 8M
|
||||
size = 30M
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
|
||||
install -m 0644 -D $BOARD_DIR/extlinux.conf $TARGET_DIR/boot/extlinux/extlinux.conf
|
||||
@@ -1,40 +0,0 @@
|
||||
Libre Computer Board ROC-RK3399-PC
|
||||
===================================
|
||||
|
||||
Build:
|
||||
|
||||
$ make roc_pc_rk3399_defconfig
|
||||
$ make
|
||||
|
||||
Files created in output directory
|
||||
=================================
|
||||
|
||||
output/images
|
||||
|
||||
├── bl31.elf
|
||||
├── idbloader.img
|
||||
├── Image
|
||||
├── rk3399-roc-pc.dtb
|
||||
├── rootfs.ext2
|
||||
├── rootfs.ext4 -> rootfs.ext2
|
||||
├── rootfs.tar
|
||||
├── sdcard.img
|
||||
├── u-boot.bin
|
||||
└── u-boot.itb
|
||||
|
||||
Creating bootable SD card:
|
||||
==========================
|
||||
|
||||
Simply invoke (as root)
|
||||
|
||||
sudo dd if=output/images/sdcard.img of=/dev/sdX && sync
|
||||
|
||||
Where X is your SD card device
|
||||
|
||||
Serial console
|
||||
--------------
|
||||
|
||||
Baudrate for this board is 1500000
|
||||
|
||||
Wiki link:
|
||||
https://wiki.amarulasolutions.com/bsp/rockchip/rk3399/roc-rk3399-pc.html
|
||||
@@ -9,7 +9,6 @@
|
||||
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
label = "boot"
|
||||
files = {
|
||||
%FILES%
|
||||
}
|
||||
|
||||
@@ -9,12 +9,11 @@
|
||||
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
label = "boot"
|
||||
files = {
|
||||
%FILES%
|
||||
}
|
||||
}
|
||||
size = 64M
|
||||
size = 32M
|
||||
}
|
||||
|
||||
image sdcard.img {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user