Lines Matching +full:rom +full:- +full:val
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
56 * ROM region is 16 MB at the top of 4GB ("low") memory.
61 * It is allocated in page-multiple blocks on a first-come first-serve basis,
64 static char *romptr; /* Pointer to userspace-mapped bootrom region. */
87 int size, uint64_t *val, void *arg1 __unused, long arg2 __unused) in bootrom_var_mem_handler() argument
91 offset = addr - var.gpa; in bootrom_var_mem_handler()
98 memcpy(var.mmap + offset, val, size); in bootrom_var_mem_handler()
102 var.cmd = *(uint8_t *)val; in bootrom_var_mem_handler()
108 memset(val, 0, size); in bootrom_var_mem_handler()
112 memcpy(val, var.mmap + offset, size); in bootrom_var_mem_handler()
128 gpa_base = highmem - BOOTROM_SIZE; in init_bootrom()
130 gpa_alloctop = highmem - 1; in init_bootrom()
154 warnx("ROM size %zu is invalid", len); in bootrom_alloc()
158 warnx("ROM size %zu is not a multiple of the page size", in bootrom_alloc()
164 gpa = (gpa_alloctop - len) + 1; in bootrom_alloc()
166 warnx("No room for %zu ROM in bootrom region", len); in bootrom_alloc()
171 if (gpa > (gpa_alloctop - len) + 1) { in bootrom_alloc()
172 warnx("No room for %zu ROM in bootrom region", len); in bootrom_alloc()
177 segoff = gpa - gpa_base; in bootrom_alloc()
185 gpa_alloctop = gpa - 1; in bootrom_alloc()
205 rv = -1; in bootrom_loadrom()
206 varfd = -1; in bootrom_loadrom()
221 return (-1); in bootrom_loadrom()
296 var.gpa = (gpa_alloctop - var_size) + 1; in bootrom_loadrom()
297 gpa_alloctop = var.gpa - 1; in bootrom_loadrom()