Module Name: src Committed By: rin Date: Tue Mar 30 02:04:44 UTC 2021
Modified Files: src/sys/arch/evbppc/conf: Makefile.walnut.inc files.walnut src/sys/arch/evbppc/walnut: machdep.c src/sys/arch/powerpc/include/ibm4xx: cpu.h Removed Files: src/sys/arch/evbppc/walnut: walnut_start.S Log Message: Convert walnut to use powerpc/ibm4xx/openbios. No functional changes. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/sys/arch/evbppc/conf/Makefile.walnut.inc cvs rdiff -u -r1.18 -r1.19 src/sys/arch/evbppc/conf/files.walnut cvs rdiff -u -r1.64 -r1.65 src/sys/arch/evbppc/walnut/machdep.c cvs rdiff -u -r1.24 -r0 src/sys/arch/evbppc/walnut/walnut_start.S cvs rdiff -u -r1.24 -r1.25 src/sys/arch/powerpc/include/ibm4xx/cpu.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/evbppc/conf/Makefile.walnut.inc diff -u src/sys/arch/evbppc/conf/Makefile.walnut.inc:1.10 src/sys/arch/evbppc/conf/Makefile.walnut.inc:1.11 --- src/sys/arch/evbppc/conf/Makefile.walnut.inc:1.10 Mon Mar 29 13:12:38 2021 +++ src/sys/arch/evbppc/conf/Makefile.walnut.inc Tue Mar 30 02:04:43 2021 @@ -1,12 +1,12 @@ -# $NetBSD: Makefile.walnut.inc,v 1.10 2021/03/29 13:12:38 rin Exp $ +# $NetBSD: Makefile.walnut.inc,v 1.11 2021/03/30 02:04:43 rin Exp $ MKIMG?= ${HOST_SH} ${THISPPC}/compile/walnut-mkimg.sh CFLAGS+=-mcpu=405 AFLAGS+=-mcpu=405 TEXTADDR?= 25000 -SYSTEM_FIRST_OBJ= walnut_start.o -SYSTEM_FIRST_SFILE= ${THISPPC}/walnut/walnut_start.S +SYSTEM_FIRST_OBJ= locore.o +SYSTEM_FIRST_SFILE= ${POWERPC}/${PPCDIR}/openbios/locore.S SYSTEM_LD_TAIL_EXTRA_EXTRA+=; \ echo ${MKIMG} $@ $@.img ; \ Index: src/sys/arch/evbppc/conf/files.walnut diff -u src/sys/arch/evbppc/conf/files.walnut:1.18 src/sys/arch/evbppc/conf/files.walnut:1.19 --- src/sys/arch/evbppc/conf/files.walnut:1.18 Mon Mar 29 14:21:08 2021 +++ src/sys/arch/evbppc/conf/files.walnut Tue Mar 30 02:04:43 2021 @@ -1,4 +1,4 @@ -# $NetBSD: files.walnut,v 1.18 2021/03/29 14:21:08 rin Exp $ +# $NetBSD: files.walnut,v 1.19 2021/03/30 02:04:43 rin Exp $ # # walnut-specific configuration info @@ -8,6 +8,7 @@ file arch/evbppc/walnut/machdep.c file arch/powerpc/ibm4xx/ibm4xx_autoconf.c file arch/powerpc/ibm4xx/ibm40x_machdep.c file arch/powerpc/ibm4xx/ibm4xx_machdep.c +file arch/powerpc/ibm4xx/openbios/openbios.c # Memory Disk for install kernel file dev/md_root.c memory_disk_hooks Index: src/sys/arch/evbppc/walnut/machdep.c diff -u src/sys/arch/evbppc/walnut/machdep.c:1.64 src/sys/arch/evbppc/walnut/machdep.c:1.65 --- src/sys/arch/evbppc/walnut/machdep.c:1.64 Tue Mar 30 01:33:50 2021 +++ src/sys/arch/evbppc/walnut/machdep.c Tue Mar 30 02:04:44 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.64 2021/03/30 01:33:50 rin Exp $ */ +/* $NetBSD: machdep.c,v 1.65 2021/03/30 02:04:44 rin Exp $ */ /* * Copyright 2001, 2002 Wasabi Systems, Inc. @@ -67,7 +67,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.64 2021/03/30 01:33:50 rin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.65 2021/03/30 02:04:44 rin Exp $"); #include "opt_compat_netbsd.h" #include "opt_ddb.h" @@ -108,6 +108,8 @@ __KERNEL_RCSID(0, "$NetBSD: machdep.c,v #include <powerpc/ibm4xx/dcr4xx.h> #include <powerpc/ibm4xx/ibm405gp.h> +#include <powerpc/ibm4xx/openbios.h> + #include <powerpc/ibm4xx/pci_machdep.h> #include <powerpc/pic/picvar.h> @@ -139,21 +141,17 @@ char machine_arch[] = MACHINE_ARCH; /* f void initppc(vaddr_t, vaddr_t, char *, void *); -struct board_cfg_data board_data; - void initppc(vaddr_t startkernel, vaddr_t endkernel, char *args, void *info_block) { + u_int memsize; + /* Disable all external interrupts */ mtdcr(DCR_UIC0_BASE + DCR_UIC_ER, 0); - /* Initialize cache info for memcpy, etc. */ - cpu_probe_cache(); - - /* Save info block */ - memcpy(&board_data, info_block, sizeof(board_data)); - - ibm40x_memsize_init(board_data.mem_size, startkernel); + /* Setup board from OpenBIOS */ + openbios_board_init(info_block); + memsize = openbios_board_memsize_get(); /* Linear map kernel memory */ for (vaddr_t va = 0; va < endkernel; va += TLB_PG_SIZE) { @@ -161,30 +159,16 @@ initppc(vaddr_t startkernel, vaddr_t end } /* Map console after physmem (see pmap_tlbmiss()) */ - ppc4xx_tlb_reserve(IBM405GP_UART0_BASE, - roundup(board_data.mem_size, TLB_PG_SIZE), + ppc4xx_tlb_reserve(IBM405GP_UART0_BASE, roundup(memsize, TLB_PG_SIZE), TLB_PG_SIZE, TLB_I | TLB_G); mtspr(SPR_TCR, 0); /* disable all timers */ + ibm40x_memsize_init(memsize, startkernel); ibm4xx_init(startkernel, endkernel, pic_ext_intr); #ifdef DEBUG - printf("Board config data:\n"); - printf(" usr_config_ver = %s\n", board_data.usr_config_ver); - printf(" rom_sw_ver = %s\n", board_data.rom_sw_ver); - printf(" mem_size = %u\n", board_data.mem_size); - printf(" mac_address_local = %02x:%02x:%02x:%02x:%02x:%02x\n", - board_data.mac_address_local[0], board_data.mac_address_local[1], - board_data.mac_address_local[2], board_data.mac_address_local[3], - board_data.mac_address_local[4], board_data.mac_address_local[5]); - printf(" mac_address_pci = %02x:%02x:%02x:%02x:%02x:%02x\n", - board_data.mac_address_pci[0], board_data.mac_address_pci[1], - board_data.mac_address_pci[2], board_data.mac_address_pci[3], - board_data.mac_address_pci[4], board_data.mac_address_pci[5]); - printf(" processor_speed = %u\n", board_data.processor_speed); - printf(" plb_speed = %u\n", board_data.plb_speed); - printf(" pci_speed = %u\n", board_data.pci_speed); + openbios_board_print(); #endif #ifdef DDB @@ -205,41 +189,10 @@ initppc(vaddr_t startkernel, vaddr_t end void cpu_startup(void) { - prop_number_t pn; - prop_data_t pd; ibm4xx_cpu_startup("Walnut PowerPC 405GP Evaluation Board"); - board_info_init(); - - pn = prop_number_create_integer(board_data.mem_size); - KASSERT(pn != NULL); - if (prop_dictionary_set(board_properties, "mem-size", pn) == false) - panic("setting mem-size"); - prop_object_release(pn); - - pd = prop_data_create_data_nocopy(board_data.mac_address_local, - sizeof(board_data.mac_address_local)); - KASSERT(pd != NULL); - if (prop_dictionary_set(board_properties, "emac0-mac-addr", - pd) == false) - panic("setting emac0-mac-addr"); - prop_object_release(pd); - - pd = prop_data_create_data_nocopy(board_data.mac_address_pci, - sizeof(board_data.mac_address_pci)); - KASSERT(pd != NULL); - if (prop_dictionary_set(board_properties, "sip0-mac-addr", - pd) == false) - panic("setting sip0-mac-addr"); - prop_object_release(pd); - - pn = prop_number_create_integer(board_data.processor_speed); - KASSERT(pn != NULL); - if (prop_dictionary_set(board_properties, "processor-frequency", - pn) == false) - panic("setting processor-frequency"); - prop_object_release(pn); + openbios_board_info_set(); /* * Now that we have VM, malloc()s are OK in bus_space. Index: src/sys/arch/powerpc/include/ibm4xx/cpu.h diff -u src/sys/arch/powerpc/include/ibm4xx/cpu.h:1.24 src/sys/arch/powerpc/include/ibm4xx/cpu.h:1.25 --- src/sys/arch/powerpc/include/ibm4xx/cpu.h:1.24 Tue Mar 30 01:16:45 2021 +++ src/sys/arch/powerpc/include/ibm4xx/cpu.h Tue Mar 30 02:04:44 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu.h,v 1.24 2021/03/30 01:16:45 rin Exp $ */ +/* $NetBSD: cpu.h,v 1.25 2021/03/30 02:04:44 rin Exp $ */ /* * Copyright 2002 Wasabi Systems, Inc. @@ -145,23 +145,4 @@ extern char msgbuf[MSGBUFSIZE]; extern prop_dictionary_t board_properties; extern void board_info_init(void); -/*****************************************************************************/ -/* THIS CODE IS OBSOLETE. WILL BE REMOVED */ -/* - * Board configuration structure from the OpenBIOS. - */ -struct board_cfg_data { - unsigned char usr_config_ver[4]; - unsigned char rom_sw_ver[30]; - unsigned int mem_size; - unsigned char mac_address_local[6]; - unsigned char mac_address_pci[6]; - unsigned int processor_speed; - unsigned int plb_speed; - unsigned int pci_speed; -}; - -extern struct board_cfg_data board_data; -/*****************************************************************************/ - #endif /* _IBM4XX_CPU_H_ */