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

Re: PALO issue



Hi Frank,

On 07.12.18 21:15, Frank Scheiner wrote:
> On 12/7/18 20:44, Helge Deller wrote:
>> I think this can happen e.g. if you boot from Network via TFTP.
>>
>> First the firmware IODC opens network connection and asks the tftpboot server
>> to provide the file. The first part of the file has the palo boot code which
>> is then executed.
> 
> So the firmware IODC doesn't download the whole lifimage but just
> sort of "opens" it and starts the first part that contains palo?

Yes.
Firmware loads just the "lifimage" part.
The first sector holds information for firmware where palo code starts and how long it is.
This code is loaded at some random address into memory and executed.
palo then loads the kernel & initrd later.

>> When palo has started, it rewinds the file to the start and reloads the first
>> sectors to get the offsets for vmlinux and ramdisk.
> 
> And palo actually doesn't download the lifimage, but just operates on
> a sort of file descriptor the firmware IODC provides to find the
> offsets. 

Yes.

> And then keeps the lifimage sort of "open" until a user
> continues to boot.

Yes.

> Sorry if I repeat things, I thought it would work totally different.
> Actually I didn't know, that it was possible with TFTP, to open a
> remote file and operate on it as if it was local.

TFTP doesn't allow to "open" some random remote file.
It just gets one file, and can rewind it, but not select another file.
It's like booting from a tape drive which is emulated by this file.
You can rewind to the start of the tape (and seek to another position of the tape),
but not directly choose another file.

>> After that it jumps to the loop which interacts with the user until he pressed "b"
>> to continue booting.
>>
>> If you wait a few minutes until you continue booting, I assume
>> the tftpboot server (and the parisc box) will kill the network
>> connection in the meantime. That's the reason why you see:
>>  
>>> <multiple minutes in between without any outpout>
>>> pdc_iodc_bootin() died during seekread
>>
>> seekread() is the rewind-function and pdc_iodc_bootin() is the palo
>> function which reads in the bytes.
>>
>> So, I don't think there is much in palo what can be done about that.
> 
> Could one "close" the lifimage and "reopen" it after a user issues `b`?

No, if you close it, it's gone.
The TFTPserver will then just close the network connection.

>>   Have you seen this issue when booting from hard disc too?
> 
> I don't boot from HDDs that often, but will give that a try. This can
> take some time if I can't find an old on-disk installation to use and
> have to recreate one.

Ok.

Helge


Reply to: