History log of /src/sys/arch/arm/include/arm32/machdep.h |
Revision | | Date | Author | Comments |
1.36 |
| 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.35 |
| 28-Aug-2020 |
skrll | Some KASAN fixes and tweaks
- don't access BSS variables when __md_early - centralise the INIT_ARM_STACK_{SHIFT,SIZE} defines and create a new INIT_ARM_TOTAL_STACK - Only create L1PT entries in kasan_md_shadow_map_page if arm32_kernel_vm_init hasn't created the L2PTs (and their L1PT entries) - Add some comments to explain what's going on
|
1.34 |
| 04-Jul-2020 |
skrll | Protect with #ifdef _KERNEL
|
1.33 |
| 05-Mar-2020 |
riastradh | Revert "Include opt_diagnostic.h for DIAGNOSTIC."
This did not do what I thought it did. opt_diagnostic.h is only for the unused _DIAGNOSTIC, which seems like an abortive attempt to incrementally convert DIAGNOSTIC to an opt_*.h option rather than a command-line option.
|
1.32 |
| 05-Mar-2020 |
riastradh | Include opt_diagnostic.h for DIAGNOSTIC.
...at least, in header files, which may not have already included libkern.h.
|
1.31 |
| 15-Feb-2020 |
skrll | Various updates and improvements to cpu start up on arm/aarch64
- start sharing more code around the AP startup messaging. - call arm_cpu_topology_set early so that ci_core_id is available for drivers, e.g. bcm2835_intr.c - both arm and aarch64 now have - a static cpu_info_store array - the same arm_cpu_{hatched,mbox}
|
1.30 |
| 18-Dec-2019 |
riastradh | branches: 1.30.2; 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
|
1.29 |
| 16-Jul-2019 |
skrll | branches: 1.29.2; Consistently use vaddr_t as initarm and friends return type.
Makes no difference to binaries except for aarch64 where it's required
|
1.28 |
| 03-Jan-2019 |
skrll | Start CPUs more like aarch64 by using a cpu_mpidr array (if populated) to map MPIDRs to an index for each CPU.
Towards big.LITTLE support.
|
1.27 |
| 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.26 |
| 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.25 |
| 05-Aug-2018 |
skrll | Expose kern_vtopdiff
|
1.24 |
| 03-Aug-2018 |
skrll | Provide and use kern_vtopdiff in KERN_{VTOPHYS,PHYSTOV}. A step towards generic arm.
|
1.23 |
| 01-Aug-2018 |
skrll | s/_ARM32_BOOT_MACHDEP_H_/_ARM32_MACHDEP_H_/ in multiple inclusion protection.
|
1.22 |
| 15-Jul-2018 |
maxv | Retire ipkdb entirely. The option was removed from the config files yesterday.
ok kamil christos
|
1.21 |
| 20-Feb-2017 |
skrll | branches: 1.21.12; 1.21.14; Whitespace in comment
|
1.20 |
| 20-Feb-2017 |
skrll | Trailing whitespace
|
1.19 |
| 11-Nov-2015 |
jmcneill | branches: 1.19.2; 1.19.4; add support for optional RB_POWERDOWN handler
|
1.18 |
| 28-Mar-2014 |
matt | branches: 1.18.6; Change arm_cpu_mbox to volatile
|
1.17 |
| 20-Oct-2012 |
matt | branches: 1.17.2; Increase l2pts to accomodate large memory disks.
|
1.16 |
| 01-Sep-2012 |
martin | branches: 1.16.2; Backout previous, Matt fixed it differently
|
1.15 |
| 01-Sep-2012 |
martin | Move struct pv_addr next to struct bootmem_info into machdep.h and have pmap.h include that. Seems to be the least intrusive build fix; Matt: feel free to revamp.
|
1.14 |
| 31-Aug-2012 |
matt | Make cpu_reset, most of initarm and the kvm init code common. Add MP hooks for cpu_need_resced Add idlestck which is allocated in arm32_kvminit
|
1.13 |
| 29-Aug-2012 |
matt | Don't use locations in .data to store exception temporaries, use decidicated space in cpu_info instead. This also moves undefined_handler_address into cpu_info as well. Use the new armreg* inlines for getting TPIDRPRW register. Add MULTIPROCESSOR version of CPU_INFO_FOREACH
|
1.12 |
| 29-Aug-2012 |
matt | Since the PMC cycle counter is started in cpufunc no reason to do so here. Use curcpu()->ci_data.cpu_cc_freq and new armreg* inlines.
|
1.11 |
| 16-Aug-2012 |
matt | Move the standard definitions of the {UND,IRQ,FIQ,ABT}_STACK_SIZE to <arm32/machdep.h> Move the extern for cpu_reset_address to the same file. Add cpu_reset_address_paddr. Kill cpu_reset_v4_MMU_disable. if cpu_reset_address is NULL, then the MMU will be disabled.
|
1.10 |
| 29-Jul-2012 |
matt | Fix more -fno-common fallout. Move more variables to common locations.
|
1.9 |
| 14-Mar-2009 |
dsl | branches: 1.9.12; 1.9.20; Remove all the __P() from sys (excluding sys/dist) Diff checked with grep and MK1 eyeball. i386 and amd64 GENERIC and sys still build.
|
1.8 |
| 04-Mar-2007 |
christos | branches: 1.8.46; 1.8.54; 1.8.60; 1.8.64; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
1.7 |
| 21-Feb-2002 |
thorpej | branches: 1.7.34; 1.7.72; map_chunk() -> pmap_map_chunk(), and move it to pmap.c
|
1.6 |
| 20-Feb-2002 |
thorpej | map_pagetable() -> pmap_link_l2pt(), and move it to pmap.c
|
1.5 |
| 20-Feb-2002 |
thorpej | Collapse map_entry{,ro,nc}() into a single pmap_map_entry() that takes a prot and a "cacheable" indicator.
|
1.4 |
| 20-Feb-2002 |
thorpej | Rename map_section() to pmap_map_section(), move it to pmap.c, and give it an extra argument (prot - specifies protection of the mapping).
|
1.3 |
| 20-Jan-2002 |
thorpej | Some prototype cleanup.
|
1.2 |
| 07-Jan-2002 |
chris | branches: 1.2.2; 1.2.4; Finish up the changes to get LOOSE_PROTOTYPES working for cats. Note that this leaves a few inconsistencies (no more than we already had though) eg initarm is now prototyped in arm32/machdep.h, however only cats currently makes use of that header.
|
1.1 |
| 05-Jan-2002 |
chris | Make some of the arm32 files build with LOOSE_PROTOTYPES not set in the makefile. Turned up a few mismatched functions. Note that this isn't all of the arm32 files. Aim will be to get arm32 kernels built with LOOSE_PROTOTYPES not set.
|
1.2.4.3 |
| 17-Apr-2002 |
nathanw | Catch up to -current.
|
1.2.4.2 |
| 11-Jan-2002 |
nathanw | More catchup.
|
1.2.4.1 |
| 07-Jan-2002 |
nathanw | file machdep.h was added on branch nathanw_sa on 2002-01-11 23:38:04 +0000
|
1.2.2.4 |
| 16-Mar-2002 |
jdolecek | Catch up with -current.
|
1.2.2.3 |
| 11-Feb-2002 |
jdolecek | Sync w/ -current.
|
1.2.2.2 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.2.2.1 |
| 07-Jan-2002 |
thorpej | file machdep.h was added on branch kqueue on 2002-01-10 19:37:55 +0000
|
1.7.72.1 |
| 12-Mar-2007 |
rmind | Sync with HEAD.
|
1.7.34.1 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.8.64.1 |
| 15-Feb-2014 |
matt | Merge armv7 support from HEAD, specifically support for the BCM5301X and BCM56340 evbarm kernels.
|
1.8.60.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
1.8.54.1 |
| 28-Apr-2009 |
skrll | Sync with HEAD.
|
1.8.46.1 |
| 04-May-2009 |
yamt | sync with head.
|
1.9.20.1 |
| 28-Nov-2012 |
matt | Merge improved arm support (especially Cortex) from HEAD including OMAP and BCM53xx support.
|
1.9.12.2 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.9.12.1 |
| 30-Oct-2012 |
yamt | sync with head
|
1.16.2.3 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.16.2.2 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.16.2.1 |
| 20-Nov-2012 |
tls | Resync to 2012-11-19 00:00:00 UTC
|
1.17.2.1 |
| 18-May-2014 |
rmind | sync with head
|
1.18.6.2 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.18.6.1 |
| 27-Dec-2015 |
skrll | Sync with HEAD (as of 26th Dec)
|
1.19.4.1 |
| 21-Apr-2017 |
bouyer | Sync with HEAD
|
1.19.2.1 |
| 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.21.14.3 |
| 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.21.14.2 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.21.14.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.21.12.4 |
| 18-Jan-2019 |
pgoyette | Synch with HEAD
|
1.21.12.3 |
| 20-Oct-2018 |
pgoyette | Sync with head
|
1.21.12.2 |
| 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.21.12.1 |
| 28-Jul-2018 |
pgoyette | Sync with HEAD
|
1.29.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.30.2.1 |
| 29-Feb-2020 |
ad | Sync with head.
|