[SeaBIOS] [PATCH] Ctrl-Break support (INT 1B, etc)

2011-07-20 Thread Nikolay Nikolov
Hi, all, I made a patch for proper Ctrl-Break handling. This is useful for MS-DOS or compatible operating systems like FreeDOS. When Ctrl-Break is detected, it clears the keyboard buffer, sets the Ctrl-Break flag at [0040h:0071h], invokes int 1Bh and then adds h to the keyboard buffer. I

Re: [SeaBIOS] [PATCH] Ctrl-Break support (INT 1B, etc)

2011-07-21 Thread Nikolay Nikolov
y is to run "git format-patch", but "git diff" is also fine. Please do include a "Signed-off-by" line in your commit message or email message though. ok: Signed-off-by: Nikolay Nikolov +asm volatile ("int $0x1B":::"memory"); Can th

[SeaBIOS] [PATCH] Show the real IRQ number in the debug, produced by the unused, IRQ handler

2018-01-15 Thread Nikolay Nikolov
configured) hardware. Signed-off-by: Nikolay Nikolov ---  src/hw/pic.c    | 108 +---  src/post.c  |  20 ---  src/romlayout.S |  18 --  3 files changed, 135 insertions(+), 11 deletions(-) diff --git a/src/hw/pic.c b/src/hw

[SeaBIOS] [PATCH] Fixes to the floppy driver, so it works on real (not emulated) hardware

2018-01-29 Thread Nikolay Nikolov
will be added in the future. Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 83 +++-- 1 file changed, 69 insertions(+), 14 deletions(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index f2577c5..674909d 100644 --- a/src/hw/floppy.c

Re: [SeaBIOS] [PATCH] Fixes to the floppy driver, so it works on real (not emulated) hardware

2018-02-02 Thread Nikolay Nikolov
On Tue, 2018-01-30 at 22:23 -0500, Kevin O'Connor wrote: > On Tue, Jan 30, 2018 at 05:41:47AM +0200, Nikolay Nikolov wrote: > > Several fixes to the floppy driver, so it works on a real floppy > > controller > > with a real floppy. Tested with Coreboot on a motherbo

Re: [SeaBIOS] [PATCH] Fixes to the floppy driver, so it works on real (not emulated) hardware

2018-02-02 Thread Nikolay Nikolov
Sorry, forgot to reply to one of the small points in my other mail. On 01/31/2018 05:23 AM, Kevin O'Connor wrote: // Send the specified command and it's parameters to the floppy controller. static int @@ -302,9 +310,12 @@ static int floppy_enable_controller(void) { dprintf(2, "F

Re: [SeaBIOS] [PATCH] Fixes to the floppy driver, so it works on real (not emulated) hardware

2018-02-02 Thread Nikolay Nikolov
On Sat, 2018-02-03 at 00:09 +0200, Nikolay Nikolov wrote: > On Tue, 2018-01-30 at 22:23 -0500, Kevin O'Connor wrote: > > > > > @@ -199,8 +205,9 @@ floppy_wait_irq(void) > > > { > > > u8 frs = GET_BDA(floppy_recalibration_status); > >

[SeaBIOS] [PATCH 6/6] Use timer_check() instead of using floppy_motor_counter in BDA for the timeout check in floppy_wait_irq()

2018-02-03 Thread Nikolay Nikolov
BIOSes do. Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index acaff3f..6714402 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -34,6 +34,7 @@ #define FLOPPY_GAPLEN 0x1B

[SeaBIOS] [PATCH 5/6] Introduce floppy_turn_off_motor_delayed() to keep the motor spinning for 2 seconds after the end of a floppy operation

2018-02-03 Thread Nikolay Nikolov
The new function is called after each floppy operation (except controller reset) and resets the floppy motor counter in BDA to FLOPPY_MOTOR_TICKS (about 2 seconds). Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 35 --- 1 file changed, 28 insertions(+), 7

[SeaBIOS] [PATCH 4/6] Move the code that turns on the floppy motor to floppy_turn_on_motor()

2018-02-03 Thread Nikolay Nikolov
Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 17 - 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index 573c45f..b5bc114 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -337,6 +337,16 @@ floppy_enable_controller(void

[SeaBIOS] [PATCH 1/6] Introduce floppy_dor_mask()

2018-02-03 Thread Nikolay Nikolov
Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index 9c44a58..f45676e 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -193,6 +193,12 @@ floppy_dor_write(u8 val) SET_LOW

[SeaBIOS] [PATCH 2/6] Introduce FLOPPY_DOR_XXX constants

2018-02-03 Thread Nikolay Nikolov
Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 17 + 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index f45676e..992983d 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -35,6 +35,15 @@ #define FLOPPY_FORMAT_GAPLEN

[SeaBIOS] [PATCH 3/6] Preserve the motor and drive sel bits when resetting the floppy controller

2018-02-03 Thread Nikolay Nikolov
m not completely sure whether this is necessary. It is done just in case some hardware introduces a delay between setting this bit and actually enabling the IRQ, which would cause us to miss the IRQ, sent by the controller immediately after reset. Signed-off-by: Nikolay Nikolov --- src/hw/floppy.

Re: [SeaBIOS] [PATCH 1/6] Introduce floppy_dor_mask()

2018-02-03 Thread Nikolay Nikolov
Sorry, I missed one commit here. Please disregard this thread and see my next patch series. Nikolay On Sat, 2018-02-03 at 19:32 +0200, Nikolay Nikolov wrote: > Signed-off-by: Nikolay Nikolov > --- > src/hw/floppy.c | 8 +++- > 1 file changed, 7 insertions(+), 1 deletion(-) >

[SeaBIOS] [PATCH 3/7] Introduce FLOPPY_DOR_XXX constants

2018-02-03 Thread Nikolay Nikolov
Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 17 + 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index f45676e..992983d 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -35,6 +35,15 @@ #define FLOPPY_FORMAT_GAPLEN

[SeaBIOS] [PATCH 5/7] Move the code that turns on the floppy motor to floppy_turn_on_motor()

2018-02-03 Thread Nikolay Nikolov
Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 17 - 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index 573c45f..b5bc114 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -337,6 +337,16 @@ floppy_enable_controller(void

[SeaBIOS] [PATCH 2/7] Introduce floppy_dor_mask()

2018-02-03 Thread Nikolay Nikolov
Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index 9c44a58..f45676e 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -193,6 +193,12 @@ floppy_dor_write(u8 val) SET_LOW

[SeaBIOS] [PATCH 7/7] Use timer_check() instead of using floppy_motor_counter in BDA for the timeout check in floppy_wait_irq()

2018-02-03 Thread Nikolay Nikolov
BIOSes do. Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index acaff3f..6714402 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -34,6 +34,7 @@ #define FLOPPY_GAPLEN 0x1B

[SeaBIOS] [PATCH 1/7] Introduce the floppy_dor_read() function

2018-02-03 Thread Nikolay Nikolov
Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 10 -- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index f2577c5..9c44a58 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -180,6 +180,12 @@ find_floppy_type(u32 size) u8

[SeaBIOS] [PATCH 6/7] Introduce floppy_turn_off_motor_delayed() to keep the motor spinning for 2 seconds after the end of a floppy operation

2018-02-03 Thread Nikolay Nikolov
The new function is called after each floppy operation (except controller reset) and resets the floppy motor counter in BDA to FLOPPY_MOTOR_TICKS (about 2 seconds). Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 35 --- 1 file changed, 28 insertions(+), 7

[SeaBIOS] [PATCH 4/7] Preserve the motor and drive sel bits when resetting the floppy controller

2018-02-03 Thread Nikolay Nikolov
m not completely sure whether this is necessary. It is done just in case some hardware introduces a delay between setting this bit and actually enabling the IRQ, which would cause us to miss the IRQ, sent by the controller immediately after reset. Signed-off-by: Nikolay Nikolov --- src/hw/floppy.

Re: [SeaBIOS] [PATCH 7/7] Use timer_check() instead of using floppy_motor_counter in BDA for the timeout check in floppy_wait_irq()

2018-02-03 Thread Nikolay Nikolov
On Sat, 2018-02-03 at 15:17 -0500, Kevin O'Connor wrote: > On Sat, Feb 03, 2018 at 07:46:11PM +0200, Nikolay Nikolov wrote: > > The problem with using floppy_motor_counter was that, after it > > reaches 0, > > it immediately stops the floppy motors, which is not what is

Re: [SeaBIOS] [PATCH 5/7] Move the code that turns on the floppy motor to floppy_turn_on_motor()

2018-02-03 Thread Nikolay Nikolov
On Sat, 2018-02-03 at 14:12 -0500, Kevin O'Connor wrote: > On Sat, Feb 03, 2018 at 07:46:09PM +0200, Nikolay Nikolov wrote: > > Signed-off-by: Nikolay Nikolov > > --- > > src/hw/floppy.c | 17 - > > 1 file changed, 12 insertions(+), 5 deletions

[SeaBIOS] [PATCH 1/6] Introduce the floppy_dor_read() function

2018-02-04 Thread Nikolay Nikolov
Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 10 -- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index f2577c5..9c44a58 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -180,6 +180,12 @@ find_floppy_type(u32 size) u8

[SeaBIOS] [PATCH 5/6] Reset the floppy motor count, so the motor keeps spinning 2 seconds after a floppy operation, performed by floppy_drive_pio()

2018-02-04 Thread Nikolay Nikolov
Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index 573c45f..77dbade 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -356,6 +356,7 @@ floppy_drive_pio(u8 floppyid, int command, u8 *param

[SeaBIOS] [PATCH 6/6] Use timer_check() instead of using floppy_motor_counter in BDA for the timeout check in floppy_wait_irq()

2018-02-04 Thread Nikolay Nikolov
BIOSes do. Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index 77dbade..3012b3a 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -34,6 +34,7 @@ #define FLOPPY_GAPLEN 0x1B

[SeaBIOS] [PATCH 3/6] Introduce FLOPPY_DOR_XXX constants

2018-02-04 Thread Nikolay Nikolov
Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 17 + 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index f45676e..992983d 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -35,6 +35,15 @@ #define FLOPPY_FORMAT_GAPLEN

[SeaBIOS] [PATCH 4/6] Preserve the motor and drive sel bits when resetting the floppy controller

2018-02-04 Thread Nikolay Nikolov
m not completely sure whether this is necessary. It is done just in case some hardware introduces a delay between setting this bit and actually enabling the IRQ, which would cause us to miss the IRQ, sent by the controller immediately after reset. Signed-off-by: Nikolay Nikolov --- src/hw/floppy.

[SeaBIOS] [PATCH 2/6] Introduce floppy_dor_mask()

2018-02-04 Thread Nikolay Nikolov
Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index 9c44a58..f45676e 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -193,6 +193,12 @@ floppy_dor_write(u8 val) SET_LOW

Re: [SeaBIOS] [PATCH 5/6] Reset the floppy motor count, so the motor keeps spinning 2 seconds after a floppy operation, performed by floppy_drive_pio()

2018-02-04 Thread Nikolay Nikolov
This replaces patches 5 and 6 from the previous patch series as per your suggestion. Nikolay On Sun, 2018-02-04 at 17:27 +0200, Nikolay Nikolov wrote: > Signed-off-by: Nikolay Nikolov > --- > src/hw/floppy.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/src/hw

Re: [SeaBIOS] [PATCH 6/6] Use timer_check() instead of using floppy_motor_counter in BDA for the timeout check in floppy_wait_irq()

2018-02-04 Thread Nikolay Nikolov
This is the same as patch 7 from the previous series, except it also removes the line "SET_BDA(floppy_motor_counter, FLOPPY_MOTOR_TICKS);" from floppy_enable_controller(). Nikolay On Sun, 2018-02-04 at 17:27 +0200, Nikolay Nikolov wrote: > The problem with using floppy_motor_cou

Re: [SeaBIOS] [PATCH 1/6] Introduce the floppy_dor_read() function

2018-02-08 Thread Nikolay Nikolov
On 02/08/2018 04:23 AM, Kevin O'Connor wrote: On Sun, Feb 04, 2018 at 05:26:56PM +0200, Nikolay Nikolov wrote: Signed-off-by: Nikolay Nikolov Thanks. I made some minor changes to the commit messages and committed this series. Thanks. I'll prepare the rest of the patches, nee

[SeaBIOS] [PATCH 2/5] floppy: Execute a SPECIFY command (sets the Step Rate Time, Head Load Time, Head Unload Time and the DMA enable/disable bit) after sensing the media type.

2018-02-08 Thread Nikolay Nikolov
Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 22 -- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index 16989c2..5a7e6b9 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -35,6 +35,8 @@ #define

[SeaBIOS] [PATCH 5/5] floppy: Send 4 sense interrupt commands during controller initialization.

2018-02-08 Thread Nikolay Nikolov
4 - Drive Polling of the Intel 82077AA datasheet. Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 15 ++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index 21389bc..d80851b 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy

[SeaBIOS] [PATCH 3/5] floppy: Support up to 4 floppy drives (instead of just 2) in the code, that turns on the floppy motor

2018-02-08 Thread Nikolay Nikolov
Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index 5a7e6b9..730aadc 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -358,7 +358,7 @@ floppy_drive_pio(u8 floppyid, int command, u8

[SeaBIOS] [PATCH 1/5] floppy: hold the DOR reset bit low for 4 microseconds, when resetting the floppy controller

2018-02-08 Thread Nikolay Nikolov
Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index 3012b3a..16989c2 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -328,6 +328,8 @@ floppy_enable_controller(void) dprintf(2

[SeaBIOS] [PATCH 4/5] floppy: Wait for the floppy motor to reach a stable speed, after starting

2018-02-08 Thread Nikolay Nikolov
completes). Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 13 +++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index 730aadc..21389bc 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -37,6 +37,7 @@ #define

Re: [SeaBIOS] [PATCH 1/5] floppy: hold the DOR reset bit low for 4 microseconds, when resetting the floppy controller

2018-02-08 Thread Nikolay Nikolov
Nikolov wrote: > Signed-off-by: Nikolay Nikolov > --- > src/hw/floppy.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/src/hw/floppy.c b/src/hw/floppy.c > index 3012b3a..16989c2 100644 > --- a/src/hw/floppy.c > +++ b/src/hw/floppy.c > @@ -328,6 +328,8 @@

Re: [SeaBIOS] [PATCH 4/5] floppy: Wait for the floppy motor to reach a stable speed, after starting

2018-02-10 Thread Nikolay Nikolov
On Fri, 2018-02-09 at 23:35 -0500, Kevin O'Connor wrote: > On Fri, Feb 09, 2018 at 02:31:02AM +0200, Nikolay Nikolov wrote: > > When starting up the floppy motor, wait for a certain amount of > > time, so > > that it can spin up and reach a stable speed. This delay is >

[SeaBIOS] [PATCH v2 3/5] floppy: Support up to 4 floppy drives when turning on the floppy motor

2018-02-10 Thread Nikolay Nikolov
The previous version allowed for only two floppies. Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index 5a7e6b9..730aadc 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -358,7 +358,7

[SeaBIOS] [PATCH v2 5/5] floppy: Send 4 sense interrupt commands during controller initialization

2018-02-10 Thread Nikolay Nikolov
4 - Drive Polling of the Intel 82077AA datasheet. Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 15 ++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index 933e5c0..9e6647d 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy

[SeaBIOS] [PATCH v2 1/5] floppy: hold the DOR reset bit low for 4 microseconds, when resetting

2018-02-10 Thread Nikolay Nikolov
Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index 3012b3a..16989c2 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -328,6 +328,8 @@ floppy_enable_controller(void) dprintf(2

[SeaBIOS] [PATCH v2 4/5] floppy: Wait for the floppy motor to reach a stable speed, after starting

2018-02-10 Thread Nikolay Nikolov
completes). Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 13 +++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index 730aadc..933e5c0 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -37,6 +37,7 @@ #define

[SeaBIOS] [PATCH v2 2/5] floppy: Execute a SPECIFY command after sensing the media type

2018-02-10 Thread Nikolay Nikolov
The SPECIFY command sets the Step Rate Time, Head Load Time, Head Unload Time and the DMA enable/disable bit. Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 22 -- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index

[SeaBIOS] [PATCH 2/2] floppy: Clear the IRQ flag immediately before a floppy command or reset

2018-02-25 Thread Nikolay Nikolov
hardware (during reset). Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index 1120d63..c85615b 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -230,7 +230,6 @@ floppy_clear_irq_flag

[SeaBIOS] [PATCH 1/2] floppy: Introduce the floppy_clear_irq_flag() function

2018-02-25 Thread Nikolay Nikolov
Signed-off-by: Nikolay Nikolov --- src/hw/floppy.c | 11 +-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/hw/floppy.c b/src/hw/floppy.c index 9e6647d..1120d63 100644 --- a/src/hw/floppy.c +++ b/src/hw/floppy.c @@ -220,11 +220,18 @@ floppy_disable_controller(void

Re: [SeaBIOS] [PATCH 2/2] floppy: Clear the IRQ flag immediately before a floppy command or reset

2018-02-26 Thread Nikolay Nikolov
On Sun, 2018-02-25 at 18:33 -0500, Kevin O'Connor wrote: > On Sun, Feb 25, 2018 at 10:38:09PM +0200, Nikolay Nikolov wrote: > > This ensures that we safely receive the IRQ even if the floppy > > controller > > manages to be faster than our code and sends the IRQ