Subject: Re: CVS commit: src/sys/arch/evbppc/walnut
To: Eduardo Horvath <eeh@netbsd.org>
From: Simon Burge <simonb@wasabisystems.com>
List: port-powerpc
Date: 08/18/2003 16:06:18
Hi Eduardo,
On Sun, Aug 03, 2003 at 11:28:46PM +0000, Eduardo Horvath wrote:
> Module Name: src
> Committed By: eeh
> Date: Sun Aug 3 23:28:46 UTC 2003
>
> Modified Files:
>
> src/sys/arch/evbppc/walnut: walnut_start.S
>
> Log Message:
>
> The firmware actually passes the info block pointer in the link register.
With this change, the info block pointer is set to 0xfffe2960, which is
near the end of the ROM "invalidate_dcache" function. The board info
now looks like:
Board config data:
usr_config_ver = L
rom_sw_ver = 8
mem_size = 1619296256
mac_address_local = 7c:93:03:86:38:80
mac_address_pci = 00:11:7c:92:03:86
processor_speed = 1015022209
plb_speed = 1619285120
pci_speed = 2090009478
and thus get lines like
total memory = 1544 MB
avail memory = 1453 MB
cpu0 at plb0: 1015MHz 405GP (Revision 0.196)
during boot, as well as emac0 not working.
A normal board info config should like more like:
Board config data:
usr_config_ver = 1.4
rom_sw_ver = 1.15
mem_size = 268435456
mac_address_local = 00:04:ac:e3:12:b2
mac_address_pci = 00:00:00:00:00:00
processor_speed = 200000000
plb_speed = 100000000
pci_speed = 33333333
What version of ROM software did you test this change on?
I'm thinking of changing the
/* Save info block */
if (info_block == NULL)
/* XXX why isn't r3 set correctly?!?!? */
info_block = (void *)0x8e10;
memcpy(&board_data, info_block, sizeof(board_data));
block to checking for the info_block pointer being less than that start
of the kernel. Also, the "r3" should say "r7" or maybe "r7/lr" - where
is the reference for the info block being passed in the link register?
Simon.
--
Simon Burge <simonb@wasabisystems.com>
NetBSD Development, Support and Service: http://www.wasabisystems.com/