sparc docs: write down some more useful things
These are better here than in my bash history... Change-Id: Iab8940f4efed950e26a8bad29cb8954464270e8f Reviewed-on: https://review.haiku-os.org/c/haiku/+/4645 Reviewed-by: waddlesplash <[email protected]>
This commit is contained in:
@@ -281,6 +281,23 @@ Configuring openboot for serial port
|
|||||||
Boot from network
|
Boot from network
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
The openboot bootloader supports network booting. See the
|
||||||
|
`Network booting guide <https://www.haiku-os.org/guides/network_booting/>`_
|
||||||
|
for general information about the general network booting process. This page
|
||||||
|
documents the parts specific to the openboot bootloader configuration.
|
||||||
|
|
||||||
|
In openboot, booting from the network is done simply by using the "net:" device
|
||||||
|
alias in the boot command line. This lets openboot load our bootloader, which
|
||||||
|
then uses the openboot ability to send and receive data over the network to load
|
||||||
|
the filesystem (and kernel contained in it) over the network. The two parts are
|
||||||
|
independent: it's also possible to load the bootloader from the network but boot
|
||||||
|
a local filesystem, or use the local bootloader and load the filesystem from the
|
||||||
|
network.
|
||||||
|
|
||||||
|
The bootloader needs to be placed in a tftp server, I use atftpd in Debian,
|
||||||
|
which serve files from /srv/tftp/ (so "somefile" in the example below will look
|
||||||
|
for /srv/tftp/somefile).
|
||||||
|
|
||||||
static ip
|
static ip
|
||||||
*********
|
*********
|
||||||
|
|
||||||
@@ -310,6 +327,11 @@ the boot file from there.
|
|||||||
|
|
||||||
(net is an alias to the network card and also sets the load address: /pci@1f,4000/network@1,1)
|
(net is an alias to the network card and also sets the load address: /pci@1f,4000/network@1,1)
|
||||||
|
|
||||||
|
This currently does not work completely: the server address is not forwarded to
|
||||||
|
the bootloader, and as a result, remote filesystems will not be available. The
|
||||||
|
bootloader needs to be updated to know where to find the address in this case
|
||||||
|
(it is done for PowerPC, I think).
|
||||||
|
|
||||||
dhcp
|
dhcp
|
||||||
****
|
****
|
||||||
|
|
||||||
@@ -325,6 +347,8 @@ the file to load and boot.
|
|||||||
Debugging
|
Debugging
|
||||||
---------
|
---------
|
||||||
|
|
||||||
|
The openboot environment provide several useful commands to assist in debugging:
|
||||||
|
|
||||||
.. code-block:: text
|
.. code-block:: text
|
||||||
|
|
||||||
202000 dis (disassemble starting at 202000 until next return instruction)
|
202000 dis (disassemble starting at 202000 until next return instruction)
|
||||||
@@ -333,3 +357,13 @@ Debugging
|
|||||||
.locals (show local/windowed registers)
|
.locals (show local/windowed registers)
|
||||||
%pc dis (disassemble code being exectuted)
|
%pc dis (disassemble code being exectuted)
|
||||||
ctrace (backtrace)
|
ctrace (backtrace)
|
||||||
|
|
||||||
|
The backtrace provides addresses and register values (allowing to know the
|
||||||
|
function arguments), there is no symbols and function names printed.
|
||||||
|
objdump (on the build machine) can be used to disassemble the kernel or
|
||||||
|
bootloader and find the corresponding code:
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
./cross-tools-sparc/bin/sparc64-unknown-haiku-objdump -d objects/haiku/sparc/release/system/kernel/kernel_sparc |c++filt|less
|
||||||
|
./cross-tools-sparc/bin/sparc64-unknown-haiku-objdump -d objects/haiku/sparc/release/system/boot/openfirmware/boot_loader_openfirmware |c++filt|less
|
||||||
|
|||||||
Reference in New Issue
Block a user