Date: Tue, 15 Oct 2019 23:21:52 +0000 (UTC) From: Kristof Provost <kp@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353600 - in head/sys: kern sys Message-ID: <201910152321.x9FNLqQh029860@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kp Date: Tue Oct 15 23:21:52 2019 New Revision: 353600 URL: https://svnweb.freebsd.org/changeset/base/353600 Log: Generalize ARM specific comments in devmap The comments in devmap are very ARM specific, this generalizes them for other architectures. Submitted by: Nicholas O'Brien <nickisobrien_gmail.com> Reviewed by: manu, philip Sponsored by: Axiado Differential Revision: https://reviews.freebsd.org/D22035 Modified: head/sys/kern/subr_devmap.c head/sys/sys/devmap.h Modified: head/sys/kern/subr_devmap.c ============================================================================== --- head/sys/kern/subr_devmap.c Tue Oct 15 21:56:19 2019 (r353599) +++ head/sys/kern/subr_devmap.c Tue Oct 15 23:21:52 2019 (r353600) @@ -46,7 +46,7 @@ static boolean_t devmap_bootstrap_done = false; * The allocated-kva (akva) devmap table and metadata. Platforms can call * devmap_add_entry() to add static device mappings to this table using * automatically allocated virtual addresses carved out of the top of kva space. - * Allocation begins immediately below the ARM_VECTORS_HIGH address. + * Allocation begins immediately below the max kernel virtual address. */ #define AKVA_DEVMAP_MAX_ENTRIES 32 static struct devmap_entry akva_devmap_entries[AKVA_DEVMAP_MAX_ENTRIES]; @@ -115,8 +115,8 @@ devmap_lastaddr() * physical address and size and a virtual address allocated from the top of * kva. This automatically registers the akva table on the first call, so all a * platform has to do is call this routine to install as many mappings as it - * needs and when initarm() calls devmap_bootstrap() it will pick up all the - * entries in the akva table automatically. + * needs and when the platform-specific init function calls devmap_bootstrap() + * it will pick up all the entries in the akva table automatically. */ void devmap_add_entry(vm_paddr_t pa, vm_size_t sz) @@ -132,13 +132,13 @@ devmap_add_entry(vm_paddr_t pa, vm_size_t sz) if (akva_devmap_idx == 0) devmap_register_table(akva_devmap_entries); + /* Allocate virtual address space from the top of kva downwards. */ +#ifdef __arm__ /* - * Allocate virtual address space from the top of kva downwards. If the - * range being mapped is aligned and sized to 1MB boundaries then also - * align the virtual address to the next-lower 1MB boundary so that we - * end up with a nice efficient section mapping. + * If the range being mapped is aligned and sized to 1MB boundaries then + * also align the virtual address to the next-lower 1MB boundary so that + * we end with a nice efficient section mapping. */ -#ifdef __arm__ if ((pa & 0x000fffff) == 0 && (sz & 0x000fffff) == 0) { akva_devmap_vaddr = trunc_1mpage(akva_devmap_vaddr - sz); } else @@ -170,7 +170,8 @@ devmap_register_table(const struct devmap_entry *table * the previously-registered table is used. This smooths transition from legacy * code that fills in a local table then calls this function passing that table, * and newer code that uses devmap_register_table() in platform-specific - * code, then lets the common initarm() call this function with a NULL pointer. + * code, then lets the common platform-specific init function call this function + * with a NULL pointer. */ void devmap_bootstrap(vm_offset_t l1pt, const struct devmap_entry *table) Modified: head/sys/sys/devmap.h ============================================================================== --- head/sys/sys/devmap.h Tue Oct 15 21:56:19 2019 (r353599) +++ head/sys/sys/devmap.h Tue Oct 15 23:21:52 2019 (r353600) @@ -63,16 +63,18 @@ void devmap_add_entry(vm_paddr_t pa, vm_size_t sz); /* * Register a platform-local table to be bootstrapped by the generic - * initarm() in arm/machdep.c. This is used by newer code that allocates and - * fills in its own local table but does not have its own initarm() routine. + * platform-specific init function in <ARCH>/machdep.c. This is used by newer + * code that allocates and fills in its own local table but does not have its + * own platform-specific init routine. */ void devmap_register_table(const struct devmap_entry * _table); /* * Establish mappings for all the entries in the table. This is called - * automatically from the common initarm() in arm/machdep.c, and also from the - * custom initarm() routines in older code. If the table pointer is NULL, this - * will use the table installed previously by devmap_register_table(). + * automatically from the common platform-specific init function in + * <ARCH>/machdep.c, and also from the custom platform-specific init routines + * in older code. If the table pointer is NULL, this will use the table + * installed previously by devmap_register_table(). */ void devmap_bootstrap(vm_offset_t _l1pt, const struct devmap_entry *_table);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201910152321.x9FNLqQh029860>