Deleted Added
full compact
machdep.c (215159) machdep.c (217523)
1/*-
2 * Copyright (C) 2006 Semihalf, Marian Balakowicz <m8@semihalf.com>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 65 unchanged lines hidden (view full) ---

74 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
75 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
76 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
77 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
78 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
79 */
80
81#include <sys/cdefs.h>
1/*-
2 * Copyright (C) 2006 Semihalf, Marian Balakowicz <m8@semihalf.com>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 65 unchanged lines hidden (view full) ---

74 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
75 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
76 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
77 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
78 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
79 */
80
81#include <sys/cdefs.h>
82__FBSDID("$FreeBSD: head/sys/powerpc/booke/machdep.c 215159 2010-11-12 04:18:19Z nwhitehorn $");
82__FBSDID("$FreeBSD: head/sys/powerpc/booke/machdep.c 217523 2011-01-17 23:54:50Z marcel $");
83
84#include "opt_compat.h"
85#include "opt_ddb.h"
86#include "opt_kstack_pages.h"
87#include "opt_msgbuf.h"
83
84#include "opt_compat.h"
85#include "opt_ddb.h"
86#include "opt_kstack_pages.h"
87#include "opt_msgbuf.h"
88#include "opt_platform.h"
88
89#include <sys/cdefs.h>
90#include <sys/types.h>
91#include <sys/param.h>
92#include <sys/proc.h>
93#include <sys/systm.h>
94#include <sys/time.h>
95#include <sys/bio.h>

--- 62 unchanged lines hidden (view full) ---

158extern unsigned char __sbss_end[];
159extern unsigned char _end[];
160
161extern void dcache_enable(void);
162extern void dcache_inval(void);
163extern void icache_enable(void);
164extern void icache_inval(void);
165
89
90#include <sys/cdefs.h>
91#include <sys/types.h>
92#include <sys/param.h>
93#include <sys/proc.h>
94#include <sys/systm.h>
95#include <sys/time.h>
96#include <sys/bio.h>

--- 62 unchanged lines hidden (view full) ---

159extern unsigned char __sbss_end[];
160extern unsigned char _end[];
161
162extern void dcache_enable(void);
163extern void dcache_inval(void);
164extern void icache_enable(void);
165extern void icache_inval(void);
166
167/*
168 * Bootinfo is passed to us by legacy loaders. Save the address of the
169 * structure to handle backward compatibility.
170 */
171uint32_t *bootinfo;
172
166struct kva_md_info kmi;
167struct pcpu __pcpu[MAXCPU];
168struct trapframe frame0;
169int cold = 1;
170long realmem = 0;
171long Maxmem = 0;
173struct kva_md_info kmi;
174struct pcpu __pcpu[MAXCPU];
175struct trapframe frame0;
176int cold = 1;
177long realmem = 0;
178long Maxmem = 0;
172
173char machine[] = "powerpc";
174SYSCTL_STRING(_hw, HW_MACHINE, machine, CTLFLAG_RD, machine, 0, "");
175
176int cacheline_size = 32;
177
178SYSCTL_INT(_machdep, CPU_CACHELINE, cacheline_size,
179 CTLFLAG_RD, &cacheline_size, 0, "");
180

--- 108 unchanged lines hidden (view full) ---

289 if (mdp != NULL) {
290 preload_metadata = mdp;
291 kmdp = preload_search_by_type("elf kernel");
292 if (kmdp != NULL) {
293 boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int);
294 kern_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *);
295 dtbp = MD_FETCH(kmdp, MODINFOMD_DTBP, vm_offset_t);
296 end = MD_FETCH(kmdp, MODINFOMD_KERNEND, vm_offset_t);
179char machine[] = "powerpc";
180SYSCTL_STRING(_hw, HW_MACHINE, machine, CTLFLAG_RD, machine, 0, "");
181
182int cacheline_size = 32;
183
184SYSCTL_INT(_machdep, CPU_CACHELINE, cacheline_size,
185 CTLFLAG_RD, &cacheline_size, 0, "");
186

--- 108 unchanged lines hidden (view full) ---

295 if (mdp != NULL) {
296 preload_metadata = mdp;
297 kmdp = preload_search_by_type("elf kernel");
298 if (kmdp != NULL) {
299 boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int);
300 kern_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *);
301 dtbp = MD_FETCH(kmdp, MODINFOMD_DTBP, vm_offset_t);
302 end = MD_FETCH(kmdp, MODINFOMD_KERNEND, vm_offset_t);
303
304 bootinfo = (uint32_t *)preload_search_info(kmdp,
305 MODINFO_METADATA | MODINFOMD_BOOTINFO);
306
297#ifdef DDB
298 ksym_start = MD_FETCH(kmdp, MODINFOMD_SSYM, uintptr_t);
299 ksym_end = MD_FETCH(kmdp, MODINFOMD_ESYM, uintptr_t);
300#endif
301 }
302 } else {
303 /*
304 * We should scream but how? Cannot even output anything...
305 */
306
307 /*
308 * FIXME add return value and handle in the locore so we can
309 * return to the loader maybe? (this seems not very easy to
310 * restore everything as the TLB have all been reprogrammed
311 * in the locore etc...)
312 */
313 while (1);
314 }
315
307#ifdef DDB
308 ksym_start = MD_FETCH(kmdp, MODINFOMD_SSYM, uintptr_t);
309 ksym_end = MD_FETCH(kmdp, MODINFOMD_ESYM, uintptr_t);
310#endif
311 }
312 } else {
313 /*
314 * We should scream but how? Cannot even output anything...
315 */
316
317 /*
318 * FIXME add return value and handle in the locore so we can
319 * return to the loader maybe? (this seems not very easy to
320 * restore everything as the TLB have all been reprogrammed
321 * in the locore etc...)
322 */
323 while (1);
324 }
325
326#if defined(FDT_DTB_STATIC)
327 /*
328 * In case the device tree blob was not retrieved (from metadata) try
329 * to use the statically embedded one.
330 */
331 if (dtbp == (vm_offset_t)NULL)
332 dtbp = (vm_offset_t)&fdt_static_dtb;
333#endif
334
316 if (OF_install(OFW_FDT, 0) == FALSE)
317 while (1);
318
319 if (OF_init((void *)dtbp) != 0)
320 while (1);
321
322 if (fdt_immr_addr(CCSRBAR_VA) != 0)
323 while (1);

--- 276 unchanged lines hidden ---
335 if (OF_install(OFW_FDT, 0) == FALSE)
336 while (1);
337
338 if (OF_init((void *)dtbp) != 0)
339 while (1);
340
341 if (fdt_immr_addr(CCSRBAR_VA) != 0)
342 while (1);

--- 276 unchanged lines hidden ---