Home | History | Annotate | Download | only in boot
History log of /src/sys/arch/luna68k/stand/boot/init_main.c
RevisionDateAuthorComments
 1.17  24-Sep-2024  rin luna68k: stand: Silence GCC12 -Warray-bounds for main()

- LUNA1_BOOTINFOADDR (0x8c0) is in the 0-th page [0, 0x1000), which
causes -Warray-bounds for GCC12 and later.
- LUNA2_BOOTINFOADDR (0x1d80) is also in the 0-th page, if we switch to
8KB page.

Fix luna68k build with GCC12.
 1.16  14-Feb-2015  tsutsui branches: 1.16.54;
Explicitly denote static functions.
 1.15  21-Apr-2014  tsutsui branches: 1.15.4;
Fix stupid botches in previous.

Use a proper device unit number if a unit number or non-default device
is specified on the boot command.
 1.14  16-Apr-2014  tsutsui Use booted device unit if no unit number is specified on boot command.

Bump version to denote a visible change.
 1.13  11-Jan-2014  tsutsui branches: 1.13.2;
Misc KNF and cosmetics.
 1.12  11-Jan-2014  tsutsui ctually remove all references to obsolete stinger.h.
 1.11  11-Jan-2014  tsutsui Remove unused KernInter stuff.
 1.10  11-Jan-2014  tsutsui Add support to pass boothowto and bootdev info from bootloader to kernel.

Bootloader side changes:
- make boot command parse boothowto flags (-ads etc.)
- pass boothowto and bootdev info to the kernel via %d7 and %d6
as the old 4.4BSD/luna68k kernel expected
- remove unused and now unnecessary "howto" (how_to_boot) command
- export and tweak make_device() in devopen.c to prepare bootdev info
- remove unused and commented out get_boot_device()
 1.9  10-Jan-2014  tsutsui Reorgenize boot device configuration. The idea is taken from OpenBSD/luna88k.

- remove kernel-like autoconfiguration to probe bootable devices
- initialize SCSI and Ethernet controllers statically instead
- reorganize device softc structures per autoconf removal
- probe and print all SCSI disks (but don't assign unit numbers)
- make sdopen() to recheck the device and allocate softc dynamically
- use controller number and SCSI target ID (ctlr * 10 + id) to specify
the boot disk on the "boot" command arg
- bump version to denote changes

Now bootloader works as the following:
---
>> NetBSD/luna68k boot, Revision 1.8 (Wed Jan 8 22:13:12 JST 2014)
>> (based on Stinger ver 0.0 [Phase-31])

Machine model = LUNA-II
Physical Memory = 0x4000000 (64 MB)

sc0 at 0xe1000000: async, parity, ID 7
ID 3: TEAC FC-1 HGF 10 rev , 512 bytes/sect x 2879 sectors
ID 6: IBM DPES-31080 rev S31Q, 512 bytes/sect x 2118143 sectors
sc1 at 0xe1000040: async, parity, ID 7
ID 6: MELCO DSC-G rev 1.00, 512 bytes/sect x 62533295 sectors
le0: Am7990 LANCE Ethernet, mem at 0x71010000
le0: Ethernet address = 00:00:0a:03:42:77

Press return to boot now, any other key for boot menu
booting sd(16,0)netbsd - starting in 0 seconds.
auto-boot sd(16,0)netbsd
1911696+96040 [280480+159179]=0x255a30
:
 1.8  05-Jan-2014  tsutsui Detect boot device on PROM load command and set proper default boot device.

Also remove now unnecessary the old netboot check.

Note all addresses of boot device info set by monitor are checked by
memory dump on several LUNA ROM versions, and these addres might be
different on earlier monitor ROM versions.

Bump version to denote the visible change.
 1.7  03-Jan-2014  tsutsui Pull more fixes from OpenBSD/luna88k:

- Bring getline() - a.k.a libsa gets() with a prompt prefix - in par with libsa
gets(), featurewise; this means support for ^u to clear the input.
- constify
 1.6  05-Mar-2013  tsutsui branches: 1.6.6;
Check netboot and set proper default boot device.
Also bump version.
 1.5  21-Jan-2013  tsutsui branches: 1.5.2; 1.5.6;
Add support for "await key" to abort autoboot and get boot menu.
Also add command help. Bump version.
 1.4  20-Jan-2013  tsutsui No need to include <sys/systm.h> in standalone sources.
 1.3  13-Jan-2013  tsutsui Add netboot support.
Based on ews4800mips, mvme68k, and x68k standalone drivers.
Also bump version.

Tested on LUNA-I.

XXX: We really need proper documents about libsa APIs.
 1.2  12-Jan-2013  tsutsui Check cputype and set machine type (LUNA-I or LUNA-II).
Tested on only LUNA-I for now.
 1.1  05-Jan-2013  tsutsui First cut at NetBSD/luna68k native bootloader.

Based on 4.4BSD-Lite2/luna68k "Stinger" loader revision "Phase-31"
http://svnweb.freebsd.org/csrg/sys/luna68k/stand/
and MI libsa glue stuff are taken from hp300 etc.

Tested on LUNA-I and old DK315C SCSI disk drive.

LUNA's monitor PROM can load only an a.out binary in 4.3BSD FFS partition
(i.e. created by "newfs -O 0") on disks with OMRON's UniOS disklabel,
but now we can load an ELF kernel in root partition via this bootloader.
(See luna68k/disksubr.c for details of UniOS label)

TODO:
- LUNA-II support (check 68040 to adjust cpuspeed for DELAY())
- secondary SCSI support for LUNA-II
- netboot via le(4) (should be trivial)
- support boot options on bootloader prompt
- bootinfo (passing info about booted device and kernel symbols)
- support "press return to boot now, any other key for boot menu" method
like x86 bootloader (needs cnscan() like functions)
- tapeboot (anyone wants it?)
 1.5.6.5  03-Dec-2017  jdolecek update from HEAD
 1.5.6.4  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.5.6.3  23-Jun-2013  tls resync from head
 1.5.6.2  25-Feb-2013  tls resync with head
 1.5.6.1  21-Jan-2013  tls file init_main.c was added on branch tls-maxphys on 2013-02-25 00:28:49 +0000
 1.5.2.3  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.5.2.2  23-Jan-2013  yamt sync with head
 1.5.2.1  21-Jan-2013  yamt file init_main.c was added on branch yamt-pagecache on 2013-01-23 00:05:53 +0000
 1.6.6.1  18-May-2014  rmind sync with head
 1.13.2.1  10-Aug-2014  tls Rebase.
 1.15.4.1  06-Apr-2015  skrll Sync with HEAD
 1.16.54.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed