loader and ficl/Forth help
Jeremy Chadwick
koitsu at freebsd.org
Sun Feb 24 22:01:14 UTC 2008
On Sun, Feb 24, 2008 at 12:03:05PM -0800, Jeremy Chadwick wrote:
> I'll have to get the qemu stuff set up so I can test this more easily.
I re-thought the method a bit, and went with something slightly more
hackish, plus added code to deal with the case where one uses -h or -Dh
in /boot.config (thus setting boot_serial=YES). The Forth code can
probably be simplified, but since I got this to work, I'll submit a PR
for the whole thing. We can hash out details/improvements there.
\ Used when serial console is detected (-|+ characters)
45 constant ascii_dash
124 constant ascii_pipe
43 constant ascii_plus
: set_serial_charset ( -- )
s" console" getenv
dup -1 = if
drop exit
then
s" comconsole" compare-insensitive 0= if
drop
ascii_dash h_el !
ascii_pipe v_el !
ascii_plus lt_el !
ascii_plus lb_el !
ascii_plus rt_el !
ascii_plus rb_el !
then
s" boot_serial" getenv
dup -1 = if
drop exit
then
s" YES" compare-insensitive 0= if
drop
ascii_dash h_el !
ascii_pipe v_el !
ascii_plus lt_el !
ascii_plus lb_el !
ascii_plus rt_el !
ascii_plus rb_el !
then
;
set_serial_charset should be called after f_single in frames.4th.
I just tested it on our development box, which uses -S115200 -Dh in
/boot.config and nothing serial-related in loader.conf:
+-----------------------------------------+
| |
| | ______
| | | ____| __ ___ ___
| Welcome to FreeBSD! | | |__ | '__/ _ \/ _ \
| | | __|| | | __/ __/
| | | | | | | | |
| 1. Boot FreeBSD [default] | |_| |_| \___|\___|
| 2. Boot FreeBSD with ACPI disabled | ____ _____ _____
| 3. Boot FreeBSD in Safe Mode | | _ \ / ____| __ \
| 4. Boot FreeBSD in single user mode | | |_) | (___ | | | |
| 5. Boot FreeBSD with verbose logging | | _ < \___ \| | | |
| 6. Escape to loader prompt | | |_) |____) | |__| |
| 7. Reboot | | | | |
| | |____/|_____/|_____/
| |
| |
| |
| Select option, [Enter] for default |
| or [Space] to pause timer 6 |
+-----------------------------------------+
--
| Jeremy Chadwick jdc at parodius.com |
| Parodius Networking http://www.parodius.com/ |
| UNIX Systems Administrator Mountain View, CA, USA |
| Making life hard for others since 1977. PGP: 4BD6C0CB |
More information about the freebsd-hackers
mailing list