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} $@ [email protected] ; \
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_ */