[SLOF] RFC: cp codes
thuth at redhat.com
Tue Feb 16 05:09:40 AEDT 2016
On 10.02.2016 13:19, Thomas Huth wrote:
> On 10.02.2016 01:33, Alexey Kardashevskiy wrote:
>> On 02/09/2016 11:54 PM, Dinar Valeev wrote:
>>> On Mon, Feb 8, 2016 at 6:50 PM, Thomas Huth <thuth at redhat.com> wrote:
>>>> On 08.02.2016 15:10, Dinar Valeev wrote:
>>>>> I have long standing issue with SLOF. During start SLOF prints cp
>>>>> codes with backspace:
>>>>> We start a VM and record log, this is fine. But then when we look at
>>>>> the log through WebUI, because of backspace, Mozilla thinks this is a
>>>>> binary file.
>>>>> At devconf I discussed this with Thomas, and he proposed to use nvram
>>>>> variable here. But it seems QEMU's --prom-env seems to be OpenBIOS
>>>>> Any comments for bring --prom-env support to SLOF? Or are there other
>>>>> options I can use,
>>>>> to change libbootmsg behaviour?
>>>> So I'd suggest to introduce a new environment variable into
>>>> slof/fs/envvar_defaults.fs and then check the contents of the variable
>>>> during the "cp" Forth function, so that it only prints the backslashes
>>>> if the envvar has the right value.
>>> Yep. Did it. But it seems a problem is envvar initialized a way after
>>> we start printing cp codes.
> Oh, I see, envvar.fs is included very late in OF.fs. You could try to
> move it to an earlier spot, but I guess that will break the boot due to
> various dependencies between the Forth files, e.g. SLOF likely has to
> parse the flattened device tree from QEMU first to know how to access
> the NVRAM ... :-/
> The only other possibility to pass information to SLOF is currently the
> flattened device tree from QEMU - but that likely also does not work
> here since fdt.fs is also included quite late in OF.fs.
Just a completely different idea, but would the following patch also fix
diff --git a/lib/libbootmsg/bootmsg_lvl.S b/lib/libbootmsg/bootmsg_lvl.S
index 2e4c135..14ce4bf 100644
@@ -58,10 +58,8 @@ ENTRY(bootmsg_cp)
bl io_putchar // print character
mr r3, r9
bl io_printhex16 // print checkpoint ID
- .rept 5
- li r3,'\b'
- bl io_putchar // print backspaces
+ li r3,'\r'
+ bl io_putchar // go back
Replacing 5 '\b's with one '\r' should IMHO be ok here since the
checkpoints should always be printed at the beginning of a line...
More information about the SLOF