[syslinux] boot... round 2

poma pomidorabelisima at gmail.com
Mon Jul 13 03:42:32 PDT 2015


On 13.07.2015 12:08, Gene Cumm wrote:
> systemd Mailing List <systemd-devel at lists.freedesktop.org> would be
> the wrong address.
> 
> On Mon, Jul 13, 2015 at 5:33 AM, poma <pomidorabelisima at gmail.com> wrote:
>> On 03.07.2015 21:35, Gene Cumm wrote:
>>> On Jul 3, 2015 1:34 PM, "poma" <pomidorabelisima at gmail.com> wrote:
>>>
>>>> It works OK as whole, for the current git:
>>>
>>> Excellent!  This problem is solved.  Now to commit a patch.
>>>
>>> --Gene
>>>
>>
>> Rather than syslinux-6.03.tar.xz with 75 patches, including this patch of yours - to produce a bootable system,
>>
>> git snapshot - http://repo.or.cz/w/syslinux.git/snapshot/5186539.tar.gz - i.e. syslinux-5186539.tar.gz
>> produces a bootable system even without this patch of yours, *but* not out-of-the-box.
>>
>> Now comes the interesting part,
>> isolinux-debug.bin must be engaged, vulgaris isolinux.bin won't do.
> 
> That's quite odd that isolinux-debug.bin alone would solve it.  Now
> I've learned Latin for common
> 
>> Also using debug facility will break the ISOLINUX bootability:
>> sed -i '3 s/#//' mk/devel.mk
>> sed -i '4 s/# //' mk/devel.mk
>> sed -i '5 s/^/#/' mk/devel.mk
>>
>>
>> No matter what, the EXTLINUX is broken.
>>
>>
>> BIOS in question is the SeaBIOS
>> http://code.coreboot.org/p/seabios
> 
> Good to note though it's not strictly that BIOS from what I've seen.
> 
> 
> On Sun, Jul 12, 2015 at 8:58 AM, Gene Cumm <gene.cumm at gmail.com> wrote:
>> On Thu, Jul 9, 2015 at 4:57 PM, William Kennington via Syslinux
>> <syslinux at zytor.com> wrote:
>>> Still not working with gcc5.2 rc
>>
>> core/fs/diskio_bios.c:395 contains pm_fs_init() which I believe is the
>> first protected-mode code.
>>
>> void pm_fs_init(com32sys_t *regs)
>> {
>>     static struct bios_disk_private priv;
>>
>>     writechr('^');
>>     priv.regs = regs;
>>     fs_init((const struct fs_ops **)regs->eax.l, (void *)&priv);
>> }
>>
>>
>> With the above, I see the caret.
>>
>> The call to this function in ISOLINUX is in core/isolinux.asm:1163
>>
>> .common:
>>             mov ecx,[Hidden]
>>             mov ebx,[Hidden+4]
>>                 mov si,[bsHeads]
>>         mov di,[bsSecPerTrack]
>>         push ax
>>         mov al,'$'
>>         call writechr
>>         pop ax
>>         pm_call pm_fs_init
>>
>>
>> With the above, I see the dollar sign then the caret (it also appears
>> to need some indentation corrections).
>>
>> William, the above two simple changes may shed a glimmer of light on
>> what's going on.
> 
> poma, please try the above code.  If you need it in a proper patch, let me know.
> 

 core/fs/diskio_bios.c | 1 +
 core/isolinux.asm     | 4 ++++
 2 files changed, 5 insertions(+)

diff --git a/core/fs/diskio_bios.c b/core/fs/diskio_bios.c
index 7feb7fc..b7958c8 100644
--- a/core/fs/diskio_bios.c
+++ b/core/fs/diskio_bios.c
@@ -398,6 +398,7 @@ void pm_fs_init(com32sys_t *regs)
 {
 	static struct bios_disk_private priv;
 
+	writechr('^');
 	priv.regs = regs;
 	fs_init((const struct fs_ops **)regs->eax.l, (void *)&priv);
 }
diff --git a/core/isolinux.asm b/core/isolinux.asm
index 50d9fe1..9a5adf9 100644
--- a/core/isolinux.asm
+++ b/core/isolinux.asm
@@ -1160,6 +1160,10 @@ init_fs:
 	        mov ebx,[Hidden+4]
                 mov si,[bsHeads]
 		mov di,[bsSecPerTrack]
+		push ax
+		mov al,'$'
+		call writechr
+		pop ax
 		pm_call pm_fs_init
 		pm_call load_env32
 enter_command:


A patch like this?




More information about the Syslinux mailing list