Port-sparc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Booting on raid1 rootfs



On Sun, 23 Feb 2014, BERTRAND Joël wrote:

>       Hello,
> 
>       I'm trying to install NetBSD on a SS20. I have built a raid1 system as
> I have done on several sparc64 without any trouble. Now, system is on raid0a
> but when my SS20 tries to boot, I only obtain :
> 
> >> NetBSD/sparc Secondary Boot, Revision 1.15
> >>.....
> Booting netbsd
> : trying netbsd.gz
> Booting netbsd.gz
> : trying netbsd.old
> ....
> 
>       I have seen that sparc supports raid1 rootfs, but how can I install
> bootblock ? I have tried in /dev/rsd1a and in /dev/rsd1c without any success.
> 
>       Any idea ? I have only found old articles that don't give any
> solution.

Based on this output, the machine found the bootblock and second level 
bootloader, but the second level bootloader wasn't able to find the 
kernel.  

On sparc64, the first level boot block is written in forth and walks the 
filesystem structures to find the second level bootloader.  The second 
level bootloader then walks the filesystem structures to find the kernel.  
(In theory we could load the kernel directly from the first level 
bootblock, but we do some fancy stuff in the ELF loader to make sure text 
and data pages are physically contiguous.)

On sparc32 (unless someone has changed things over the years) the first 
level bootblock is a SPARC C+assembly language executable that has the 
disk blocks containing the second level bootloader encoded in it.  It just 
reads those disk blocks and jumps to the program it loaded.

The second level boot loader then walks the filesystem structures to find 
the kernel.  It's this step that's failing.  My guess is that the sparc 
bootloader is missing some bits from libsa that jump over the 64KB empty 
space that raidframe leaves when looking for the ufs superblock.  

Eduardo


Home | Main Index | Thread Index | Old Index