Home | History | Annotate | only in /src/sys/arch/evbarm/fdt
History log of /src/sys/arch/evbarm/fdt
RevisionDateAuthorComments
 1.4 06-Sep-2025  thorpej Refactor the "platform" defitions into fdt_platform.h
 1.3 07-Apr-2023  skrll Rename ARM_PLATFORM to FDT_PLATFORM and make it available outside arm.
 1.2 15-Oct-2022  jmcneill Use "non-posted" instead of "strongly ordered" to describe nGnRnE mappings

Rename the following defines:
- _ARM_BUS_SPACE_MAP_STRONGLY_ORDERED to BUS_SPACE_MAP_NONPOSTED
- PMAP_DEV_SO to PMAP_DEV_NP
- LX_BLKPAG_ATTR_DEVICE_MEM_SO to LX_BLKPAG_ATTR_DEVICE_MEM_NP
Rename the following option:
- AARCH64_DEVICE_MEM_STRONGLY_ORDERED to AARCH64_DEVICE_MEM_NONPOSTED
 1.1 06-Sep-2021  jmcneill Instead of requiring drivers to be explicit about their device memory
mapping requirements, move this decision into the fdt layer. This
introduces a new MD function, fdtbus_bus_tag_create, which is responsible
for returning per-node bus_space handles.
 1.1 20-Feb-2020  jmcneill branches: 1.1.2; 1.1.6;
Add dma-ranges support.
 1.1.6.2 08-Apr-2020  martin Merge changes from current as of 20200406
 1.1.6.1 20-Feb-2020  martin file fdt_dma_machdep.c was added on branch phil-wifi on 2020-04-08 14:07:35 +0000
 1.1.2.2 29-Feb-2020  ad Sync with head.
 1.1.2.1 20-Feb-2020  ad file fdt_dma_machdep.c was added on branch ad-namecache on 2020-02-29 20:18:22 +0000
 1.112 04-Oct-2025  thorpej Use device_{get,set}prop_bool() for "is_console".
 1.111 06-Sep-2025  thorpej Re-factor the console-related code into fdt_console.[ch]
 1.110 06-Sep-2025  thorpej Refactor the "platform" defitions into fdt_platform.h
 1.109 08-Mar-2025  jmcneill arm64: Add a gross hack to allow handoff from genfb to PCI DRM drivers.

Similar to how this is handled on x86.
 1.108 30-Jun-2024  jmcneill fdt: Add a fp_device_register_post_config callback to fdt_platform.
 1.107 19-Jan-2024  skrll branches: 1.107.2;
Make fdt_cpu_rootconf available for other machines/platforms.
 1.106 04-Aug-2023  mrg avoid comparing arrays directly, compare the address of their first element.

found by GCC 12.
 1.105 10-Jul-2023  rin fdt(4): Factor out bootargs support from evbarm and riscv.
 1.104 10-Jul-2023  rin Factor out some fdt(4) features from {,evb}arm into dev/fdt.

Now, FDT-based support to efirt, initrd, rndseed, and efirng can be
used from, e.g., riscv.

Mostly from Nick Hudson.

XXX
As Nick comments, there can be some optimizations for fdt_map_range().
efiboot may also be modified to load these objects into aligned PAs.
 1.103 22-Apr-2023  skrll Move fdt_update_stdout_path from evbarm code to MI code
 1.102 07-Apr-2023  skrll Rename ARM_PLATFORM to FDT_PLATFORM and make it available outside arm.
 1.101 05-Mar-2023  mlelstv Locate wedges as boot device and also match a partition GUID.
 1.100 05-Feb-2023  mrg fix root detection on evbarm when raid is involved

there are several problems solved in this change:
- lots of work was re-done when we already have determined the
device booted from, so several new early returns introduced
if booted_device has been set
- due to the lack of cpu_bootconf(), raidframe softroot would
override "root=xxx" on the boot command line (note that
platforms that use eg, device_register() to detect the boot
device are not affected by this issue as they find the
boot device much earlier.)
- in the new cpu_bootconf(), switch the order of the platform
boot-config with the set_root_device() call. this avoids a
problem where "root=xxx" is checked after automated methods,
and is thus ignored.
- in fdt_detect_root_device(), remove the code to add "root=xxx""
string to the boot_args[] that would be later parsed by the
set_root_device() call, and simply set booted_device and, for
mbr installs, booted_partition directly. also, for any
successful call, perform an early return.
- define __HAVE_CPU_BOOTCONF so early boot calls cpu_bootconf().


tested on:
- rockpro64 booting from emmc, sata (big, and little endian)
- rockpro64 loading kernel from msdos partition
- rockpro64 booting from network (fails to auto-detect, with or
without this change)
- quartz64 booting from nvme
- lx2k booting from nvme

XXX: pullup-10
 1.99 04-Nov-2022  jmcneill branches: 1.99.2;
Size boot_physmem with FDT_MEMORY_RANGES.

This effectively increases the size from 64 to 256 entries for Arm kernels.
It turns out on large systems that memory can be quite fragmented by UEFI.
Increasing the size of this just kicks the can down the road, we need a
better solution to deal with boot_physmem/fdt_memory/bootparams.dram
sizing.
 1.98 21-Oct-2022  skrll Fix build after previous.
 1.97 20-Oct-2022  skrll Remove an empty line
 1.96 20-Oct-2022  skrll Move the fdt_memory_remove_reserved call out of fdt_build_bootconfig

NFC.
 1.95 30-Sep-2022  skrll Actually release the VA in fdt_unmap_range
 1.94 30-Sep-2022  skrll KNF
 1.93 28-Sep-2022  skrll KNF
 1.92 28-Sep-2022  skrll Typo in comment
 1.91 02-Apr-2022  skrll Update to support EFI runtime outside the kernel virtual address space
by creating an EFI RT pmap that can be activated / deactivated when
required.

Adds support for EFI RT to ARM_MMU_EXTENDED (ASID) 32-bit Arm machines.

On Arm64 the usage of pmapboot_enter is reduced and the mappings are
created much later in the boot process -- now in cpu_startup_hook.
Backward compatiblity for KVA mapped RT from old bootaa64.efi is
maintained.

Adding support to other platforms should be easier as a result.
 1.90 19-Mar-2022  hannken Fix locking after opendisk(), VOP_IOCTL() needs an unlocked vnode,
vn_rdwr() needs flag IO_NODELOCKED.
 1.89 19-Mar-2022  skrll Improve a VPRINTF
 1.88 09-Mar-2022  mrg in fdt_cpu_rootconf(), return without doing anything (like setting
"root=something" in boot_args, or booted_device), if booted_device
is already set to something.

this makes raidframe softroot work on evbarm.
 1.87 19-Mar-2021  jmcneill earlyconsgetc: return -1 instead of 0 because we will never produce input
 1.86 18-Dec-2020  skrll Add a comment
 1.85 18-Dec-2020  skrll Make EFI_RUNTIME compile on arm
 1.84 18-Dec-2020  skrll KNF
 1.83 12-Dec-2020  skrll Move evbarm/fdt/fdt_memory.[ch] to sys/dev/fdt and simplify the api and
some operations. This allows other architectures to use it.
 1.82 28-Nov-2020  riastradh evbarm: Bump efirng entropy estimate.

I'm not really happy with this, but my lack of confidence in the
remaining question marks about this (no real documentation about the
underlying physical processes, and a slightly self-inconsistent uefi
spec) is outweighed by the value of not distracting people with
entropy warnings on systems that are almost certainly fine.
 1.81 26-Nov-2020  skrll Style around setting the physical memory limit. NFCI.
 1.80 26-Nov-2020  skrll Tweak a comment
 1.79 24-Nov-2020  skrll Simplify. NFCI.
 1.78 07-Nov-2020  skrll Print the devmap we're using in the debug output
 1.77 20-Oct-2020  jmcneill branches: 1.77.2;
Instead of trying to prevent pciconf from reconfiguring the firmware's
framebuffer, instead allow MD code to register callbacks. If a resource is
changed, the driver can unmap the old resource and remap the new. Do this
with simplefb so the console doesn't explode when the VGA device is
(potentially) reconfigured at boot.
 1.76 19-Oct-2020  rin Fix colors of 32-bpp raster console for evbarm/aarch64eb and armeb.

Most boards are configured to little-endian in initial, and switched
to big-endian after kernel is loaded. In this case, framebuffer seems
byte-swapped to CPU.

It is best to reconfigure framebuffer (as done recently for sunxi_mixer
by jmcneill), but in most cases, HW is incapable, or we just don't know
register bits to configure them.

Therefore, override "format" FDT property for "simple-framebuffer" to
let drivers know byte-order for 32-bpp framebuffer.

Then, make fdt/simplefb (genfb) and arm_simplefb (early console) detect
byte-swapped FB, and configure genfb(4) or rasops(4) layers accordingly.

Tested on Pine A64+ (arm_simplefb) and Cubietruck (both fdt/simplefb and
arm_simplefb).

Discussed with jmcneill. Thanks!!
 1.75 10-Oct-2020  jmcneill Support early FB console attachment when booting with a devicetree
(non-ACPI mode). Inform the pciconf code about the framebuffer to
prevent pciconf from changing resources out from under us when framebuffer
memory is in VRAM.
 1.74 25-Sep-2020  skrll Add a newline
 1.73 27-Jun-2020  jmcneill Make sure we pass full pages to fdt_memory_remove_range
 1.72 15-May-2020  skrll Fix build on arm
 1.71 14-May-2020  riastradh Free kva for rndseed and efirng when done.

The physical pages remain forever reserved because it's not convenient
to unreserve them at the moment after we reserved them during
fdt_build_bootconifg, but it's just two pages so not that big a deal.
 1.70 14-May-2020  riastradh Deduplicate address-range querying/mapping logic.
 1.69 14-May-2020  riastradh Teach arm fdt kernel to use /chosen/netbsd,efirng data.

Feed it in as a separate random source, with zero entropy since this
is a best-effort fallback for devices we really don't know anything
about.
 1.68 08-Mar-2020  skrll Fix LOCKDEBUG by calling fdtbus_intr_init as part of cpu_startup_hook, i.e.
later.
 1.67 16-Feb-2020  thorpej Rename fdtbus_set_data() to fdtbus_init(). NFC.
 1.66 21-Jan-2020  jmcneill Switch aarch64 to use a single freelist.
 1.65 18-Dec-2019  riastradh branches: 1.65.2;
Implement rndseed support in efiboot and fdt arm.

The EFI environment variable `rndseed' specifies the path to the
random seed. It is loaded only for fdt platforms at the moment.

Since the rndseed (an rndsave_t object as defined in <sys/rndio.h>)
is 536 bytes long (for hysterical raisins), and to avoid having to
erase parts of the fdt tree, we load it into a physical page whose
address is passed in the fdt tree, rather than passing the content of
the file as an fdt node directly; the kernel then reserves the page
from uvm, and maps it into kva to call rnd_seed.

For now, the only kernel that does use efiboot with fdt is evbarm,
which knows to handle the rndseed. Any new kernels that use efiboot
with fdt must do the same; otherwise uvm may hand out the page with
the secret key on it for a normal page allocation in the kernel --
which should be OK if there are no kernel memory disclosure bugs, but
would lead to worse consequences than simply loading the seed late in
userland with /etc/rc.d/random_seed otherwise.

ok jmcneill
 1.64 16-Jul-2019  skrll branches: 1.64.2;
Consistently use vaddr_t as initarm and friends return type.

Makes no difference to binaries except for aarch64 where it's required
 1.63 15-Jul-2019  skrll Fix and improve a VPRINTF
 1.62 24-Apr-2019  skrll In fdt_add_boot_physmem make sure the memory range has pages available
before adding it to the fdt_physmem array.

Fixes a problem that jmcneill@ pointed out to me.
 1.61 30-Mar-2019  jmcneill Make fdt_get_memory return all of physical memory on ARM (matching ARM64 behavior)
 1.60 16-Mar-2019  skrll Spell common correctly in comment. Spotted by jmcneill
 1.59 16-Mar-2019  skrll Flush the BP cache just before starting APs so that cache coherency starts
with a correct view.
 1.58 31-Jan-2019  skrll Only free the _init_memory pages if all APs start corectly.
 1.57 23-Dec-2018  skrll Appease clang. Tested by roy.
 1.56 28-Nov-2018  ryo support boot option "-1" to disable multiprocessor boot, and "-z" to set AB_SILENT flag.
 1.55 15-Nov-2018  jmcneill If the bootloader specifies a boot mac-address, use it to find the root device.
 1.54 03-Nov-2018  skrll Less is more
 1.53 01-Nov-2018  jmcneill Add support for auto-selection of GPT root devices
 1.52 31-Oct-2018  jmcneill Use PRIx64 to print uint64_t
 1.51 31-Oct-2018  jmcneill Setup mappings for EFI runtime mmio ranges.
 1.50 31-Oct-2018  skrll Fix VERBOSE_INIT_ARM build
 1.49 30-Oct-2018  jmcneill Replace extent(9) with our own code to deal with adding and reserving
memory ranges.
 1.48 30-Oct-2018  skrll Retire fdt_putchar and ap_early_put_char in favour of uartputc.
 1.47 29-Oct-2018  jmcneill If a /chosen/framebuffer node is found, reserve physical memory claimed
by it.
 1.46 28-Oct-2018  jmcneill Add support for EFI runtime services on aarch64.
 1.45 18-Oct-2018  skrll Revert a VPRINTF to printf
 1.44 18-Oct-2018  skrll Provide generic start code that assumes the MMU is off and caches are
disabled as per the linux booting protocol for ARMv6 and ARMv7 boards.
u-boot image type should be changed to 'linux' for correct behaviour.

The new start code builds a minimal "bootstrap" L1PT with cached access
disabled and uses the same table for all processors. AP startup is
performed in less steps and more code is written in C.

The bootstrap tables and stack are placed into an (orphaned) section
"_init_memory" which is given to uvm when it is no longer used.

Various kernels have been converted to use this code and tested. Some
boards were provided by TNF. Thanks!

The GENERIC kernel now boots on boards using the TEGRA, SUNXI and EXYNOS
kernels. The GENERIC kernel will also work on RPI2 using u-boot.

Thanks to martin@ and aymeric@ for testing on parallella and nanosoc
respectively
 1.43 14-Oct-2018  skrll Use __nothing
 1.42 04-Oct-2018  ryo don't call plat->ap_early_putchar if not defined EARLYCONS
 1.41 29-Sep-2018  jmcneill If the total size of the DTB exceeds our static storage, attempt to pack
it in place to make it fit.
 1.40 29-Sep-2018  jmcneill Increase storage space for DTB (for QEMU)
 1.39 26-Sep-2018  bouyer Don't call ukbd_cnattach() unconditionally, this causes a non-functionnal
keyboard if there is a framebuffer but the console is serial only.
Instead add a fdt_device_register_post_config() callback, which checks
if the just-attached wsdisplay is the console, and calls ukbd_cnattach()
in this case.
OK jmcneill@
 1.38 22-Sep-2018  jmcneill Use fdt_open_into instead of fdt_move to load the DTB since we may make
changes to the tree after loading it. When we are done making changes,
call fdt_pack.
 1.37 16-Sep-2018  skrll Use do { } while (/* CONSTCOND */ 0) for nop VPRINTF
 1.36 14-Sep-2018  jakllsch fdt_cpu_rootconf: fix root on wd(4)

Remove duplicate 'ld' and replace with previously-missing 'wd'.
 1.35 07-Sep-2018  jmcneill Increase MAX_PHYSMEM to 64
 1.34 27-Aug-2018  jmcneill When the root= boot arg is missing, attempt to autodetect the root device
by comparing a hash of a disk device's MBR with the hash passed in from
the bootloader.
 1.33 23-Aug-2018  jmcneill Deal with reserved memory ranges that start before mem start
 1.32 05-Aug-2018  skrll Add prefixes to struct arm_platform{,_info} members.

No functional change.
 1.31 05-Aug-2018  skrll Refactor code to split aarch{32,64} kernel page tables and VM setup. This
will help re-build the kernel page tables on aarch64 with correct section
mappings.
 1.30 03-Aug-2018  skrll Provide and use a evbarm/fdt/machdep.h
 1.29 03-Aug-2018  skrll s/DPRINTF/VPRINTF/ for consistency
 1.28 03-Aug-2018  skrll Mark fdt_addr_r __attribute__((__section__(".data")))
 1.27 17-Jul-2018  christos restore type of uboot_args
 1.26 17-Jul-2018  christos make sure uboot_args is in the data segment by saying so, as opposed to
depending on initializing it to 0.
 1.25 17-Jul-2018  christos fix printf formats ll? -> PRIx64
 1.24 27-Jun-2018  ryo branches: 1.24.2;
on evbarm/RPI,RPI2, VERBOSE_INIT_ARM had broken.

XPUTC() of evbarm/rpi/rpi*_start.S uses bcm283[567]_platform_early_putchar() and it requires stack.
fixed to allocate stack when starting from rpi*_start.S and a9_mpsubr.S if needed.

to work XPUTC(), need to define VERBOSE_INIT_ARM and EARLYCONS option.
 1.23 21-Jun-2018  ryo * make to work printf() and panic() even before consinit().
* tidy up output for VERBOSE_INIT_ARM.
 1.22 14-Jun-2018  jmcneill Increase storage space for FDT data
 1.21 01-Apr-2018  ryo Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)

- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@)
- add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
 1.20 03-Mar-2018  skrll branches: 1.20.2;
Start code now updates a global variable fdt_addr_r to handle differences
in boot protocol (think arm64)
 1.19 21-Dec-2017  skrll Remove unnecessary #include
 1.18 14-Dec-2017  martin Fix the calculation of the end address of a reserved memory range.
From Nick. Makes my CubieTruck boot again.
 1.17 13-Dec-2017  jmcneill Fix off-by-one in nfdt_physmem KASSERT, and while here bump MAX_PHYSMEM
from 4 to 16.
 1.16 10-Dec-2017  skrll FDTise RapberryPI support. Thanks for jmcneill for a lot of help with this.

The kernel image that the RPI firmware boots is now netbsd.img in the
kernel build directory.

XXX fdtbus_get_reg needs reworking
 1.15 09-Nov-2017  skrll branches: 1.15.2;
trailing whitespace
 1.14 10-Sep-2017  jmcneill Allow USB keyboards to attach as console devices.
 1.13 24-Aug-2017  jmcneill branches: 1.13.2;
Add EX_EARLY flag for extent_create, which skips locking. Required for
using extent subsystem in early bootstrap code, before caches are enabled.
From skrll@
 1.12 20-Aug-2017  jakllsch Ignore 0-sized memory regions in the FDT.
 1.11 21-Jul-2017  jmcneill Fix reserved memory handling.
 1.10 10-Jul-2017  jmcneill port-evbarm/52388: Fix number of args to a debug printf.
 1.9 05-Jul-2017  chs the extent code cannot use the full range of u_long,
so ignore the last page before 4GB too. ok jmcneill@
 1.8 05-Jul-2017  jmcneill Add support for reserved memory and MEMORY_DISK_DYNAMIC for FDT-based
kernels.
 1.7 11-Jun-2017  jmcneill Parse more than one entry from the /memory node's reg property.
 1.6 06-Jun-2017  jmcneill Initialize boot_args before bootstrap for the benefit of platform code.
 1.5 06-Jun-2017  jmcneill Add support for stdout-path= kernel cmdline option to override the
console device specified in the FDT.
 1.4 02-Jun-2017  jmcneill branches: 1.4.2;
Allow platform code to specify the UART frequency for consinit
 1.3 02-Jun-2017  jmcneill FDT-ize "delay" by having fdt_machdep provide the delay() function and
move the implementations into the platform code.
 1.2 30-May-2017  jmcneill Fix VERBOSE_INIT_ARM build with TEGRA kernel.
 1.1 30-May-2017  jmcneill Rename tegra_machdep.c to fdt_machdep.c now that it no longer has any
Tegra-specific code in it.
 1.4.2.5 25-Aug-2017  snj Pull up following revision(s) (requested by jakllsch in ticket #220):
sys/arch/evbarm/fdt/fdt_machdep.c: revision 1.12
Ignore 0-sized memory regions in the FDT.
 1.4.2.4 25-Jul-2017  snj Pull up following revision(s) (requested by jmcneill in ticket #151):
sys/arch/evbarm/fdt/fdt_machdep.c: revision 1.11
Fix reserved memory handling.
 1.4.2.3 18-Jul-2017  snj Pull up following revision(s) (requested by jmcneill in ticket #114):
sys/arch/arm/samsung/exynos_intr.h: revision 1.3
sys/arch/arm/sunxi/sun8i_h3_ccu.c: revision 1.1
sys/arch/arm/sunxi/sun8i_h3_ccu.c: revision 1.2
sys/arch/arm/sunxi/sun8i_h3_ccu.c: revision 1.3
sys/arch/arm/sunxi/sunxi_gates.c: revision 1.1
distrib/utils/embedded/mkimage: revision 1.66
sys/arch/arm/sunxi/sun8i_h3_ccu.c: revision 1.4
sys/arch/arm/sunxi/sunxi_rsb.c: revision 1.1
sys/arch/arm/sunxi/sun8i_h3_ccu.c: revision 1.5
sys/arch/arm/sunxi/sun8i_h3_ccu.c: revision 1.6
sys/arch/arm/sunxi/sun8i_h3_ccu.c: revision 1.7
sys/dev/gpio/gpio.c: revision 1.59
sys/arch/arm/sunxi/sunxi_ccu_prediv.c: revision 1.1
sys/conf/Makefile.kern.inc: revision 1.257
sys/arch/evbarm/conf/ODROID-XU_INSTALL: file removal
sys/arch/arm/sunxi/sunxi_ccu_prediv.c: revision 1.2
sys/conf/Makefile.kern.inc: revision 1.258
sys/arch/arm/fdt/psci_fdt.h: revision 1.1
sys/arch/arm/sunxi/sunxi_resets.c: revision 1.1
sys/arch/evbarm/conf/files.sunxi: revision 1.1
sys/arch/evbarm/fdt/fdt_machdep.c: revision 1.8
sys/arch/evbarm/fdt/fdt_machdep.c: revision 1.9
sys/arch/arm/samsung/files.exynos: revision 1.22
distrib/utils/embedded/conf/armv7.conf: revision 1.13
sys/arch/arm/samsung/files.exynos: revision 1.23
sys/arch/evbarm/conf/std.tegra: revision 1.15
distrib/utils/embedded/conf/armv7.conf: revision 1.14
sys/arch/arm/samsung/files.exynos: revision 1.24
distrib/utils/embedded/conf/armv7.conf: revision 1.15
sys/arch/evbarm/sunxi/genassym.cf: revision 1.1
sys/arch/arm/samsung/exynos_fdt.c: file removal
sys/dev/fdt/fdt_pinctrl.c: revision 1.4
sys/arch/arm/samsung/exynos_sysmmu.c: revision 1.2
sys/arch/arm/sunxi/sun8i_h3_gpio.c: revision 1.1
sys/arch/arm/sunxi/sunxi_twi.c: revision 1.1
sys/dev/usb/ehci.c: revision 1.255
sys/arch/arm/sunxi/sunxi_twi.c: revision 1.2
sys/arch/arm/sunxi/sun8i_a83t_ccu.h: revision 1.1
sys/dev/ic/dwc_mmc.c: revision 1.11
sys/arch/arm/cortex/gic.c: revision 1.24
distrib/evbarm/instkernel/ramdisk/Makefile: revision 1.17
etc/etc.evbarm/Makefile.inc: revision 1.87
etc/etc.evbarm/Makefile.inc: revision 1.88
sys/arch/arm/fdt/gic_fdt.c: revision 1.5
etc/Makefile: revision 1.429
sys/arch/arm/fdt/gic_fdt.c: revision 1.6
sys/arch/arm/fdt/gic_fdt.c: revision 1.7
sys/arch/arm/sunxi/sunxi_gpio.c: revision 1.1
sys/arch/arm/sunxi/sunxi_gpio.c: revision 1.2
sys/arch/evbarm/conf/std.sunxi: revision 1.1
sys/arch/arm/sunxi/sunxi_gpio.c: revision 1.3
sys/arch/evbarm/conf/std.sunxi: revision 1.2
sys/arch/arm/sunxi/sunxi_gpio.c: revision 1.4
sys/arch/evbarm/conf/std.sunxi: revision 1.3
sys/arch/arm/sunxi/sunxi_gpio.c: revision 1.5
sys/arch/arm/sunxi/sunxi_ccu_div.c: revision 1.1
sys/dev/gpio/gpiovar.h: revision 1.17
sys/arch/arm/sunxi/sunxi_gpio.c: revision 1.6
sys/arch/arm/sunxi/sunxi_gpio.c: revision 1.7
sys/arch/arm/sunxi/sunxi_gpio.c: revision 1.8
sys/arch/arm/sunxi/sunxi_rsb.h: revision 1.1
sys/arch/arm/samsung/exynos_i2c.c: revision 1.12
sys/dev/fdt/fdtvar.h: revision 1.21
sys/arch/evbarm/sunxi/sunxi_start.S: revision 1.1
sys/arch/arm/samsung/exynos_i2c.c: revision 1.13
sys/dev/fdt/fdtvar.h: revision 1.22
sys/arch/evbarm/conf/SUNXI: revision 1.10
sys/dev/fdt/fdtvar.h: revision 1.23
sys/arch/evbarm/conf/SUNXI: revision 1.11
sys/dev/fdt/gpioleds.c: revision 1.1
sys/dev/fdt/fdtvar.h: revision 1.24
sys/arch/evbarm/conf/SUNXI: revision 1.12
sys/arch/evbarm/conf/SUNXI: revision 1.13
sys/arch/arm/cortex/gic.c: revision 1.30
sys/arch/evbarm/conf/SUNXI: revision 1.14
sys/arch/evbarm/conf/SUNXI: revision 1.15
sys/arch/evbarm/conf/SUNXI: revision 1.16
sys/arch/arm/sunxi/sunxi_emac.c: revision 1.1
etc/Makefile: revision 1.430
sys/arch/arm/sunxi/sunxi_emac.c: revision 1.2
etc/Makefile: revision 1.431
sys/arch/evbarm/conf/VEXPRESS_A15: revision 1.17
sys/arch/arm/sunxi/sunxi_emac.c: revision 1.3
sys/arch/arm/sunxi/sunxi_emac.c: revision 1.4
sys/arch/arm/samsung/exynos5422_clock.c: revision 1.6
sys/arch/arm/samsung/exynos_platform.c: revision 1.1
sys/dev/ofw/ofw_subr.c: revision 1.29
sys/arch/arm/samsung/exynos_platform.c: revision 1.2
sys/arch/evbarm/conf/mk.vexpress: revision 1.3
sys/arch/arm/samsung/exynos_platform.c: revision 1.3
sys/arch/evbarm/conf/mk.vexpress: revision 1.4
sys/arch/arm/samsung/exynos_platform.c: revision 1.4
sys/arch/arm/arm/psci.h: revision 1.1
sys/arch/arm/samsung/exynos_platform.c: revision 1.5
sys/arch/arm/samsung/exynos_platform.c: revision 1.6
sys/arch/evbarm/fdt/fdt_machdep.c: revision 1.10
external/bsd/mdocml/bin/mandoc/Makefile: revision 1.12
sys/dev/fdt/files.fdt: revision 1.17
sys/dev/fdt/files.fdt: revision 1.18
sys/dev/fdt/files.fdt: revision 1.19
sys/arch/arm/samsung/exynos_sscom.c: revision 1.8
sys/arch/arm/sunxi/sun8i_a83t_ccu.c: revision 1.1
sys/arch/arm/sunxi/sunxi_mmc.c: revision 1.1
sys/arch/arm/samsung/exynos_sscom.c: revision 1.9
sys/arch/arm/conf/files.arm: revision 1.133
sys/arch/arm/samsung/mct_var.h: revision 1.5
sys/arch/arm/sunxi/sunxi_platform.c: revision 1.1
sys/arch/arm/sunxi/sunxi_platform.c: revision 1.2
sys/arch/evbarm/conf/std.vexpress: revision 1.6
sys/arch/arm/sunxi/sunxi_platform.c: revision 1.3
sys/arch/arm/sunxi/sun6i_a31_gpio.c: revision 1.1
sys/arch/arm/sunxi/sunxi_platform.c: revision 1.4
sys/arch/arm/sunxi/sun6i_a31_gpio.c: revision 1.2
sys/arch/arm/sunxi/files.sunxi: revision 1.1
sys/dev/ofw/ofw_subr.c: revision 1.30
sys/arch/arm/sunxi/files.sunxi: revision 1.2
sys/dev/ofw/openfirm.h: revision 1.35
sys/arch/arm/sunxi/files.sunxi: revision 1.3
sys/dev/ofw/openfirm.h: revision 1.36
sys/arch/arm/sunxi/files.sunxi: revision 1.4
sys/arch/arm/sunxi/files.sunxi: revision 1.5
sys/arch/evbarm/exynos/exynos_machdep.c: file removal
sys/arch/arm/sunxi/sunxi_gpio.h: revision 1.1
sys/arch/arm/samsung/sscom.c: revision 1.9
sys/arch/arm/sunxi/files.sunxi: revision 1.6
sys/dev/fdt/ohci_fdt.c: revision 1.1
sys/arch/arm/sunxi/sunxi_usbphy.c: revision 1.1
sys/arch/arm/sunxi/sunxi_gpio.h: revision 1.2
sys/arch/arm/sunxi/files.sunxi: revision 1.7
sys/arch/arm/sunxi/sunxi_usbphy.c: revision 1.2
sys/arch/arm/sunxi/sunxi_gpio.h: revision 1.3
sys/arch/arm/sunxi/files.sunxi: revision 1.8
sys/arch/arm/sunxi/sunxi_usbphy.c: revision 1.3
sys/arch/arm/sunxi/files.sunxi: revision 1.9
sys/arch/arm/samsung/exynos_sscom.c: revision 1.10
sys/arch/evbarm/conf/mk.tegra: revision 1.5
sys/arch/arm/samsung/exynos_dwcmmc.c: revision 1.4
sys/arch/evbarm/conf/mk.tegra: revision 1.6
sys/arch/evbarm/conf/EXYNOS: revision 1.15
sys/arch/evbarm/conf/EXYNOS: revision 1.16
sys/arch/evbarm/conf/EXYNOS: revision 1.17
sys/arch/arm/sunxi/sunxi_ccu.c: revision 1.1
sys/arch/evbarm/conf/EXYNOS: revision 1.19
sys/arch/arm/sunxi/sunxi_ccu.c: revision 1.2
sys/arch/arm/sunxi/sunxi_ccu.c: revision 1.3
sys/arch/arm/sunxi/sunxi_ccu.c: revision 1.4
sys/arch/arm/sunxi/sunxi_ccu.c: revision 1.5
sys/arch/arm/sunxi/sunxi_emac.h: revision 1.1
sys/arch/evbarm/conf/mk.sunxi: revision 1.1
sys/arch/evbarm/include/bootconfig.h: revision 1.7
sys/arch/evbarm/conf/TEGRA: revision 1.24
sys/arch/arm/arm/psci.c: revision 1.1
sys/dev/led.c: revision 1.1
sys/dev/led.c: revision 1.2
sys/arch/arm/arm/psci_arm.S: revision 1.1
sys/arch/arm/sunxi/sunxi_ccu_gate.c: revision 1.1
sys/arch/arm/sunxi/sunxi_ccu_gate.c: revision 1.2
sys/dev/fdt/ehci_fdt.c: revision 1.1
sys/dev/fdt/ehci_fdt.c: revision 1.2
sys/arch/arm/sunxi/sun6i_a31_ccu.h: revision 1.1
sys/arch/evbarm/conf/EXYNOS: revision 1.21
sys/arch/arm/sunxi/files.sunxi: revision 1.10
sys/arch/arm/sunxi/files.sunxi: revision 1.11
sys/dev/fdt/fdtbus.c: revision 1.14
sys/arch/arm/sunxi/sunxi_mmc.h: revision 1.1
sys/arch/arm/samsung/exynos5422_dma.c: file removal
usr.bin/config/mkmakefile.c: revision 1.69
sys/conf/files: revision 1.1178
sys/arch/arm/sunxi/sunxi_platform.h: revision 1.1
sys/arch/evbarm/exynos/exynos_start.S: revision 1.4
sys/arch/arm/samsung/exynos_pinctrl.c: revision 1.11
sys/arch/arm/samsung/exynos_pinctrl.c: revision 1.12
sys/arch/arm/sunxi/sunxi_rtc.c: revision 1.1
sys/arch/arm/sunxi/sun8i_h3_ccu.h: revision 1.1
sys/arch/arm/samsung/exynos5410_clock.c: revision 1.1
sys/arch/arm/samsung/exynos5410_clock.c: revision 1.2
sys/arch/evbarm/conf/SUNXI: revision 1.1
external/bsd/elftosb/usr.sbin/elftosb/Makefile: revision 1.5
sys/arch/evbarm/conf/SUNXI: revision 1.2
sys/arch/arm/fdt/psci_fdt.c: revision 1.1
sys/arch/evbarm/conf/SUNXI: revision 1.3
sys/arch/evbarm/conf/SUNXI: revision 1.4
sys/arch/evbarm/conf/files.exynos: revision 1.3
sys/arch/evbarm/conf/SUNXI: revision 1.5
sys/arch/evbarm/conf/SUNXI: revision 1.6
sys/arch/arm/sunxi/sunxi_ccu_nm.c: revision 1.1
sys/dev/fdt/fixedfactorclock.c: revision 1.1
sys/dev/fdt/fdt_subr.c: revision 1.14
sys/arch/evbarm/conf/SUNXI: revision 1.7
sys/arch/arm/sunxi/sunxi_ccu_nm.c: revision 1.2
sys/arch/arm/sunxi/sun8i_a83t_gpio.c: revision 1.1
sys/dev/fdt/fdt_subr.c: revision 1.15
sys/arch/evbarm/conf/SUNXI: revision 1.8
sys/arch/arm/sunxi/sunxi_ccu_nm.c: revision 1.3
sys/dev/ic/dwc_mmc_reg.h: revision 1.6
sys/dev/fdt/fdt_subr.c: revision 1.16
sys/arch/evbarm/conf/SUNXI: revision 1.9
usr.bin/config/mkmakefile.c: revision 1.70
sys/dev/fdt/fdt_phy.c: revision 1.1
sys/arch/evbarm/conf/ODROID-XU: file removal
sys/arch/arm/fdt/arm_fdt.c: revision 1.4
sys/arch/arm/samsung/exynos_reg.h: revision 1.14
sys/conf/files: revision 1.1180
sys/arch/arm/samsung/exynos_reg.h: revision 1.15
sys/arch/arm/sunxi/sunxi_ccu.h: revision 1.1
sys/arch/arm/sunxi/sunxi_ccu.h: revision 1.2
sys/arch/arm/sunxi/sunxi_ccu.h: revision 1.3
sys/arch/arm/sunxi/sunxi_ccu.h: revision 1.4
sys/arch/arm/sunxi/sunxi_ccu.h: revision 1.5
sys/arch/arm/sunxi/sunxi_ccu.h: revision 1.6
sys/dev/ic/dwc_mmc_var.h: revision 1.6
sys/arch/arm/samsung/exynos_combiner.c: revision 1.7
sys/arch/evbarm/exynos/platform.h: revision 1.2
sys/arch/arm/fdt/files.fdt: revision 1.12
sys/arch/evbarm/conf/std.exynos: revision 1.2
sys/arch/evbarm/conf/std.exynos: revision 1.3
sys/arch/arm/rockchip/rockchip_dwcmmc.c: revision 1.6
sys/arch/arm/sunxi/sunxi_com.c: revision 1.1
sys/dev/led.h: revision 1.1
sys/arch/evbarm/conf/std.exynos: revision 1.5
sys/arch/arm/sunxi/sunxi_com.c: revision 1.2
sys/arch/evbarm/conf/files.evbarm: revision 1.26
usr.bin/config/defs.h: revision 1.99
sys/arch/arm/fdt/arm_fdtvar.h: revision 1.6
sys/arch/arm/samsung/exynos_soc.c: revision 1.32
sys/arch/arm/sunxi/sun6i_a31_ccu.c: revision 1.1
sys/arch/arm/sunxi/sun6i_a31_ccu.c: revision 1.2
sys/arch/arm/samsung/mct.c: revision 1.11
sys/arch/evbarm/conf/ODROID-U: file removal
sys/arch/arm/samsung/mct.c: revision 1.12
sys/arch/arm/sunxi/sunxi_ccu_nkmp.c: revision 1.1
sys/arch/arm/sunxi/sunxi_ccu_nkmp.c: revision 1.2
sys/arch/arm/sunxi/sunxi_ccu_nkmp.c: revision 1.3
sys/arch/arm/sunxi/sunxi_ccu_nkmp.c: revision 1.4
Get the EXYNOS kernel building again with recent FDT changes. Untested.
Use arm_fdt_cpu_hatch and add mmu entry for DTB
Fix exynos5 devmap, bootstrap, and implement early_putchar.
Calculate UART frequency based on bootloader config.
Fix KERNEL_BASE_PHYS (how did this ever work?)
Avoid divide-by-zero for unconfigured PLLs
Correctly initialize i2cbus attach args.
Add delay and enable mct timecounter.
Fix build w/o VERBOSE_INIT_ARM
Remove ODROID-U and ODROID-XU kernel configs as they no longer work.
- Replace CONSADDR with SSCOM2CONSOLE in example
- Remove gtmr (Exynos5422 uses mct)
- cinclude EXYNOS.local instead of TEGRA.local
Use fdtbus_intr_establish to hook in block interrupts instead of
intr_establish.
Simplify MCT; just enable it and then attach an ARMv7 generic timer.
Add support for building DTB files during kernel build, from christos.
build vexpress-v2p-ca15-tc1.dtb with the kernel
build tegra124-apalis-eval.dtb, tegra124-jetson-tk1.dtb, tegra124-nyan-big.dtb, tegra124-nyan-blaze.dtb, and tegra124-venice2.dtb with the kernel
Allow multiline makeoptions to work by quoting the newline..
Bump for quoting makeoptions with multiple lines.
un-c99
bump required config version for multiline makeoptions feature
Set DTS makeoption in kernel config
Assign DTB files to a variable so we can make -V DTB
put the dtb files with their kernels.
no need for debug printing.
Don't assume that CPU index = GIC CPU interface number. We can determine
the current CPU interface number by reading from the read-only
GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has
GIC CPU interface #4.
use -v to get the expanded variable.
Use -v to get the expanded variables.
Get baud rate from sclk_uartN instead of uartN. Print IRQ number at attach.
Fix PLL con0 register locations and add uart clocks
Disable exyortc for now, it doesn't work.
More or less a rewrite of dwc_mmc, based on awin_mmc, adding DMA support.
Update for new dwc_mmc driver
Fix dmesg
Add Exynos 5410 clock controller driver.
Fix a few typos in clock parent names for mmc clocks.
From jmcneill@
Update for new dwc_mmc driver
Implement platform reset for exynos5
Attach fdtbus to a /clocks node with no compatible string.
Add support for ARM Power State Coordination Interface (PSCI).
Support interrupt sharing.
Add initial support for Allwinner H3 SoC.
ARM Trusted Firmware reserves SGIs 8-15 for secure use. Even without ATF,
U-Boot on some platforms may use SGIs in this range for the PSCI
implementation.
Change ARMGIC_IPI_BASE to 0 from (16 - NIPI) and add a compile-time assert
to ensure that we don't end up with a conflict.
Add H3 MMC support
SD/MMC clock fixes
Add FDT PHY interface.
Add glue for generic ehci/ohci bindings.
Rename a variable, NFC.
Support parents in different clock domains.
Add USB stuff. Doesn't quite work yet.
Synopsys DesignWare APB UART needs "options COM_AWIN" for now.
Add i2c glue.
Add RTC driver.
PHY registers start at index 1. Now USB works.
Don't allow sharing edge and level triggered interrupts.
Add arm_fdt_memory_dump helper for dumping physical addresses from ddb
Print clocks with aprint_debug
Remove unused defines
Add fdtbus_get_string helper
Add of_search_compatible, which searches an array of compat_data structures
for a matching "compatible" entry matching the supplied OFW node. This
allows us to associate data with compatible strings.
Add driver for Allwinner Gigabit Ethernet (EMAC) as found in sun8i and
later family SoCs.
This is a port of my FreeBSD driver which has been confirmed to work on
Allwinner H3, A83T, and A64 SoCs.
Fix dmesg
Add basic support for Allwinner A31.
Add basic FDT GPIO support.
Fix the pinctrl api to match the spec. A pinctrl config can have more
than one xref, and an xref may have specifier data associated with it.
Enable sunxi pinctrl support
Adjust to new pinctrl API
Add P2WI/RSB driver, based on awin_p2wi.c.
Fix typo in a compat string.
Configure pin defaults at attach
No need to explicitly set pinctrl config 0 now
Fix some register definitions.
Disallow sharing between MPSAFE and non-MPSAFE handlers.
Add of_match_compat_data.
This routine searches an array of compat_data structures for a
matching "compatible" entry matching the supplied OFW node.
Add options __HAVE_CPU_UAREA_ALLOC_IDLELWP
Add support for reserved memory and MEMORY_DISK_DYNAMIC for FDT-based
kernels.
the extent code cannot use the full range of u_long,
so ignore the last page before 4GB too. ok jmcneill@
Copy install ramdisk to releasedir. Provide both a raw ffs and
Legacy U-Boot version of it.
Replace HUMMINGBIRD_A31 with SUNXI kernel on armv7.img and include .dtb
files for SUNXI and TEGRA kernels on the MSDOS partition.
Let the controller provide a default name for pins. This makes pins easier
to locate when we have multiple banks and a variable number of pins per
bank.
Attach gpio(4) to sunxigpio
Test for kernel build directory before reading DTB list
Add support for Allwinner A83T SoC.
Add A83T files
Fixup busdma sync and locking in the RX path. Disable batch RX/TX ints.
Fix AHB2 register definition and explicitly set AHB2 parent to PLL_PERIPH0/2 -- this gives us 50% more bus bandwidth for emac
Restore TX_INTERVAL_DEFAULT to 64
Drop the sunxi_emac_rx_batch feature. It was originally designed to
reduce the amount of mutex unlock/lock cycles during the RX path on
FreeBSD and if_input, but it is not required to drop the lock before
calling if_percpuq_enqueue on NetBSD.
Write back the data value instead of mask in sunxi_gpio_write
Add a helper for exposing LED controls via sysctl.
Add GPIO LED driver.
add gpioleds
Add misc. gates and resets driver, and explicitly enable PIO clocks
at attach.
Add fdtbus_get_string_index helper.
Add driver for fixed-factor clocks.
Add ffclock
Remove the requirement for ehci to attach after companion devices.
"go for it" - skrll@
Remove the hack to find companion devices and just assume 1 companion if
ETTF flag is not set.
Remove pass numbers for ehci/ohci now that the attach order no longer matters
Use unsigned char for ctype functions, suggested by christos
Add : to body of populate_sunxi to appease bash.
port-evbarm/52388: Fix number of args to a debug printf.
 1.4.2.2 14-Jun-2017  snj Pull up following revision(s) (requested by jmcneill in ticket #31):
sys/arch/evbarm/fdt/fdt_machdep.c: revision 1.7
Parse more than one entry from the /memory node's reg property.
 1.4.2.1 06-Jun-2017  snj Pull up following revision(s) (requested by jmcneill in ticket #13):
sys/arch/arm/fdt/plfb_fdt.c: revision 1.2
sys/arch/arm/vexpress/vexpress_platform.c: revision 1.3
sys/arch/evbarm/conf/VEXPRESS_A15: revision 1.13
sys/arch/evbarm/fdt/fdt_machdep.c: revisions 1.5, 1.6
sys/dev/ic/pl050.c: revision 1.2
Fix spelling of WS_DEFAULT_FG and WS_KERNEL_FG options.
--
Attach kbd slot to console
--
Allow plfb to be the console device
--
Add support for stdout-path= kernel cmdline option to override the
console device specified in the FDT.
--
Initialize boot_args before bootstrap for the benefit of platform code.
--
Allow 'console=fb' to act as a shortcut on vexpress for
'stdout-path=/smb@08000000/motherboard/iofpga@3,00000000/clcd@1f0000'
 1.13.2.2 28-Aug-2017  skrll Sync with HEAD
 1.13.2.1 24-Aug-2017  skrll file fdt_machdep.c was added on branch nick-nhusb on 2017-08-28 17:51:34 +0000
 1.15.2.2 03-Dec-2017  jdolecek update from HEAD
 1.15.2.1 09-Nov-2017  jdolecek file fdt_machdep.c was added on branch tls-maxphys on 2017-12-03 11:36:04 +0000
 1.20.2.8 26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts
 1.20.2.7 26-Nov-2018  pgoyette Sync with HEAD, resolve a couple of conflicts
 1.20.2.6 20-Oct-2018  pgoyette Sync with head
 1.20.2.5 30-Sep-2018  pgoyette Ssync with HEAD
 1.20.2.4 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.20.2.3 28-Jul-2018  pgoyette Sync with HEAD
 1.20.2.2 25-Jun-2018  pgoyette Sync with HEAD
 1.20.2.1 07-Apr-2018  pgoyette Sync with HEAD. 77 conflicts resolved - all of them $NetBSD$
 1.24.2.3 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.24.2.2 08-Apr-2020  martin Merge changes from current as of 20200406
 1.24.2.1 10-Jun-2019  christos Sync with HEAD
 1.64.2.1 12-Feb-2020  martin Pull up following revision(s) (requested by riastradh in ticket #705):

sys/arch/aarch64/aarch64/aarch64_machdep.c: revision 1.35
sys/stand/efiboot/efifdt.c: revision 1.20
sys/stand/efiboot/efifdt.h: revision 1.7
sys/arch/aarch64/include/machdep.h: revision 1.9
sys/stand/efiboot/efiboot.h: revision 1.11
sys/arch/arm/arm32/arm32_machdep.c: revision 1.129
sys/arch/arm/include/arm32/machdep.h: revision 1.30
sys/stand/efiboot/exec.c: revision 1.12
sys/arch/evbarm/fdt/fdt_machdep.c: revision 1.65
sys/stand/efiboot/version: revision 1.14
sys/stand/efiboot/boot.c: revision 1.19

New function cpu_startup_hook on arm.

Called at end of cpu_startup. Can be defined in, e.g., evbarm to do
additional stuff after cpu_startup. Defined as a weak alias to a
function that does nothing, so optional.
ok jmcneill

Implement rndseed support in efiboot and fdt arm.

The EFI environment variable `rndseed' specifies the path to the
random seed. It is loaded only for fdt platforms at the moment.
Since the rndseed (an rndsave_t object as defined in <sys/rndio.h>)
is 536 bytes long (for hysterical raisins), and to avoid having to
erase parts of the fdt tree, we load it into a physical page whose
address is passed in the fdt tree, rather than passing the content of
the file as an fdt node directly; the kernel then reserves the page
from uvm, and maps it into kva to call rnd_seed.

For now, the only kernel that does use efiboot with fdt is evbarm,
which knows to handle the rndseed. Any new kernels that use efiboot
with fdt must do the same; otherwise uvm may hand out the page with
the secret key on it for a normal page allocation in the kernel --
which should be OK if there are no kernel memory disclosure bugs, but
would lead to worse consequences than simply loading the seed late in
userland with /etc/rc.d/random_seed otherwise.

ok jmcneill
 1.65.2.2 29-Feb-2020  ad Sync with head.
 1.65.2.1 25-Jan-2020  ad Sync with head.
 1.77.2.3 03-Apr-2021  thorpej Sync with HEAD.
 1.77.2.2 03-Jan-2021  thorpej Sync w/ HEAD.
 1.77.2.1 14-Dec-2020  thorpej Sync w/ HEAD.
 1.99.2.1 20-Oct-2023  martin Pull up following revision(s) (requested by mrg in ticket #431):

sys/arch/evbarm/evbarm/autoconf.c: revision 1.24
sys/arch/evbarm/include/types.h: revision 1.16
sys/arch/evbarm/fdt/fdt_machdep.c: revision 1.100
sys/arch/evbarm/fdt/fdt_machdep.c: revision 1.101

fix root detection on evbarm when raid is involved

there are several problems solved in this change:
- - lots of work was re-done when we already have determined the
device booted from, so several new early returns introduced
if booted_device has been set
- - due to the lack of cpu_bootconf(), raidframe softroot would
override "root=xxx" on the boot command line (note that
platforms that use eg, device_register() to detect the boot
device are not affected by this issue as they find the
boot device much earlier.)
- - in the new cpu_bootconf(), switch the order of the platform
boot-config with the set_root_device() call. this avoids a
problem where "root=xxx" is checked after automated methods,
and is thus ignored.
- - in fdt_detect_root_device(), remove the code to add "root=xxx""
string to the boot_args[] that would be later parsed by the
set_root_device() call, and simply set booted_device and, for
mbr installs, booted_partition directly. also, for any
successful call, perform an early return.
- - define __HAVE_CPU_BOOTCONF so early boot calls cpu_bootconf().

tested on:
- - rockpro64 booting from emmc, sata (big, and little endian)
- - rockpro64 loading kernel from msdos partition
- - rockpro64 booting from network (fails to auto-detect, with or
without this change)
- - quartz64 booting from nvme
- - lx2k booting from nvme

Locate wedges as boot device and also match a partition GUID.
 1.107.2.2 02-Aug-2025  perseant Sync with HEAD
 1.107.2.1 01-Jul-2024  perseant Sync with HEAD.
 1.5 12-Dec-2020  skrll Move evbarm/fdt/fdt_memory.[ch] to sys/dev/fdt and simplify the api and
some operations. This allows other architectures to use it.
 1.4 27-Jan-2020  jmcneill branches: 1.4.6;
Save 400KB of RAM by fixing a really dumb bug in sizing of the fdt memory
pool.
 1.3 01-Nov-2018  jmcneill branches: 1.3.2; 1.3.6; 1.3.8; 1.3.10;
Fix previous
 1.2 01-Nov-2018  jmcneill Fix partial overlap logic. PR# port-evbarm/53693
 1.1 30-Oct-2018  jmcneill Replace extent(9) with our own code to deal with adding and reserving
memory ranges.
 1.3.10.1 29-Feb-2020  ad Sync with head.
 1.3.8.1 27-Jan-2020  martin Pull up following revision(s) (requested by jmcneill in ticket #659):

sys/arch/evbarm/fdt/fdt_memory.c: revision 1.4

Save 400KB of RAM by fixing a really dumb bug in sizing of the fdt memory
pool.
 1.3.6.3 08-Apr-2020  martin Merge changes from current as of 20200406
 1.3.6.2 10-Jun-2019  christos Sync with HEAD
 1.3.6.1 01-Nov-2018  christos file fdt_memory.c was added on branch phil-wifi on 2019-06-10 22:06:06 +0000
 1.3.2.2 26-Nov-2018  pgoyette Sync with HEAD, resolve a couple of conflicts
 1.3.2.1 01-Nov-2018  pgoyette file fdt_memory.c was added on branch pgoyette-compat on 2018-11-26 01:52:21 +0000
 1.4.6.1 14-Dec-2020  thorpej Sync w/ HEAD.
 1.2 12-Dec-2020  skrll Move evbarm/fdt/fdt_memory.[ch] to sys/dev/fdt and simplify the api and
some operations. This allows other architectures to use it.
 1.1 30-Oct-2018  jmcneill branches: 1.1.2; 1.1.6; 1.1.16;
Replace extent(9) with our own code to deal with adding and reserving
memory ranges.
 1.1.16.1 14-Dec-2020  thorpej Sync w/ HEAD.
 1.1.6.2 10-Jun-2019  christos Sync with HEAD
 1.1.6.1 30-Oct-2018  christos file fdt_memory.h was added on branch phil-wifi on 2019-06-10 22:06:06 +0000
 1.1.2.2 26-Nov-2018  pgoyette Sync with HEAD, resolve a couple of conflicts
 1.1.2.1 30-Oct-2018  pgoyette file fdt_memory.h was added on branch pgoyette-compat on 2018-11-26 01:52:21 +0000
 1.5 14-Sep-2018  skrll Move the aarch64 start stub from sys/arch/evbarm to sys/arch/aarch64.

Delete the unused/empty evbarm/fdt/genassym.cf while I'm here.
 1.4 10-Sep-2018  skrll Don't use printx before setting up stack.
 1.3 18-Jul-2018  ryo remove ifdef __clang.
make position independent, and cleanup.
 1.2 17-Jul-2018  christos XXX: make this assemble with gas, but I should remove the ifdefs...
 1.1 01-Apr-2018  ryo branches: 1.1.2; 1.1.4;
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)

- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@)
- add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
 1.1.4.1 10-Jun-2019  christos Sync with HEAD
 1.1.2.4 30-Sep-2018  pgoyette Ssync with HEAD
 1.1.2.3 28-Jul-2018  pgoyette Sync with HEAD
 1.1.2.2 07-Apr-2018  pgoyette Sync with HEAD. 77 conflicts resolved - all of them $NetBSD$
 1.1.2.1 01-Apr-2018  pgoyette file fdt_start.S was added on branch pgoyette-compat on 2018-04-07 04:12:12 +0000
 1.2 14-Sep-2018  skrll Move the aarch64 start stub from sys/arch/evbarm to sys/arch/aarch64.

Delete the unused/empty evbarm/fdt/genassym.cf while I'm here.
 1.1 01-Apr-2018  ryo branches: 1.1.2; 1.1.4;
fix build error
 1.1.4.1 10-Jun-2019  christos Sync with HEAD
 1.1.2.3 30-Sep-2018  pgoyette Ssync with HEAD
 1.1.2.2 07-Apr-2018  pgoyette Sync with HEAD. 77 conflicts resolved - all of them $NetBSD$
 1.1.2.1 01-Apr-2018  pgoyette file genassym.cf was added on branch pgoyette-compat on 2018-04-07 04:12:12 +0000
 1.1 03-Aug-2018  skrll branches: 1.1.2; 1.1.6;
Provide and use a evbarm/fdt/machdep.h
 1.1.6.2 10-Jun-2019  christos Sync with HEAD
 1.1.6.1 03-Aug-2018  christos file machdep.h was added on branch phil-wifi on 2019-06-10 22:06:06 +0000
 1.1.2.2 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.1.2.1 03-Aug-2018  pgoyette file machdep.h was added on branch pgoyette-compat on 2018-09-06 06:55:30 +0000
 1.11 16-Apr-2023  skrll Rename VM_KERNEL_IO_ADDRESS to VM_KERNEL_IO_BASE to match RISC-V

It's less letters, matches other similar variables and will help with
sharing code between the two architectures.

NFCI.
 1.10 12-Dec-2020  skrll Move evbarm/fdt/fdt_memory.[ch] to sys/dev/fdt and simplify the api and
some operations. This allows other architectures to use it.
 1.9 19-Sep-2020  skrll branches: 1.9.2;
Define VM_KERNEL_VM_{BASE,SIZE} for aarch64 and remove an #ifdef in
fdt/platform.h

NFCI
 1.8 10-Jul-2020  skrll Simplify
 1.7 10-Jul-2020  skrll Do previous differently for now
 1.6 08-Jul-2020  skrll Provide some KVA layout #defines in arm32/vmparam.h and simplify
fdt/platform.h as a nice side effect
 1.5 21-Jan-2019  skrll Make more KVA available
 1.4 01-Apr-2018  ryo branches: 1.4.2;
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)

- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@)
- add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
 1.3 14-Mar-2018  ryo fix compile error on evbarm/EXYNOS. platform.h may be included from *.S
 1.2 10-Dec-2017  skrll branches: 1.2.2;
FDTise RapberryPI support. Thanks for jmcneill for a lot of help with this.

The kernel image that the RPI firmware boots is now netbsd.img in the
kernel build directory.

XXX fdtbus_get_reg needs reworking
 1.1 30-May-2017  jmcneill branches: 1.1.6; 1.1.10;
Rename tegra_machdep.c to fdt_machdep.c now that it no longer has any
Tegra-specific code in it.
 1.1.10.2 03-Dec-2017  jdolecek update from HEAD
 1.1.10.1 30-May-2017  jdolecek file platform.h was added on branch tls-maxphys on 2017-12-03 11:36:04 +0000
 1.1.6.2 28-Aug-2017  skrll Sync with HEAD
 1.1.6.1 30-May-2017  skrll file platform.h was added on branch nick-nhusb on 2017-08-28 17:51:34 +0000
 1.2.2.3 26-Jan-2019  pgoyette Sync with HEAD
 1.2.2.2 07-Apr-2018  pgoyette Sync with HEAD. 77 conflicts resolved - all of them $NetBSD$
 1.2.2.1 15-Mar-2018  pgoyette Synch with HEAD
 1.4.2.1 10-Jun-2019  christos Sync with HEAD
 1.9.2.1 14-Dec-2020  thorpej Sync w/ HEAD.

RSS XML Feed