source: trunk/softs/tsar_boot/include/block_device.h @ 672

Last change on this file since 672 was 292, checked in by cfuguet, 12 years ago

Changing directory structure of the TSAR boot loader.
A README.txt file has been included to explain the new structure
and the MAKEFILE parameters.

Erasing the heap segment for the boot elf loader. All the work space
is allocated in the stack.

The stack size is defined in the include/defs.h.

Important modification in the reset.S file. The non-boot
processors (processor id != 0) wait in a low comsumption energy
mode to be wake up by processor 0 using an IPI. Each processor
has a private mailbox in the local XICU. The value written in
the mailbox will be used as address to jump by the processors.

The waking up of non-boot processors is not done in this boot loader
so it must be done in the application loaded.

The boot_loader_elf function loads into memory an executable .elf file
which must be placed in the BOOT_LOADER_LBA block of the disk. This
constant can be defined in the include/defs.h file.

File size: 1.7 KB
Line 
1/*
2 * SOCLIB_LGPL_HEADER_BEGIN
3 *
4 * This file is part of SoCLib, GNU LGPLv2.1.
5 *
6 * SoCLib is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU Lesser General Public License as published
8 * by the Free Software Foundation; version 2.1 of the License.
9 *
10 * SoCLib is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with SoCLib; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18 * 02110-1301 USA
19 *
20 * SOCLIB_LGPL_HEADER_END
21 *
22 * Copyright (c) UPMC, Lip6, Asim
23 *         Nicolas Pouillon <nipo@ssji.net>, 2007
24 *
25 * Maintainers: nipo
26 */
27#ifndef BLOCK_DEVICE_REGS_H
28#define BLOCK_DEVICE_REGS_H
29
30enum SoclibBlockDeviceRegisters {
31    BLOCK_DEVICE_BUFFER,
32    BLOCK_DEVICE_LBA,
33    BLOCK_DEVICE_COUNT,
34    BLOCK_DEVICE_OP,
35    BLOCK_DEVICE_STATUS,
36    BLOCK_DEVICE_IRQ_ENABLE,
37    BLOCK_DEVICE_SIZE,
38    BLOCK_DEVICE_BLOCK_SIZE,
39};
40
41enum SoclibBlockDeviceOp {
42    BLOCK_DEVICE_NOOP,
43    BLOCK_DEVICE_READ,
44    BLOCK_DEVICE_WRITE,
45};
46
47enum SoclibBlockDeviceStatus {
48    BLOCK_DEVICE_IDLE,
49    BLOCK_DEVICE_BUSY,
50    BLOCK_DEVICE_READ_SUCCESS,
51    BLOCK_DEVICE_WRITE_SUCCESS,
52    BLOCK_DEVICE_READ_ERROR,
53    BLOCK_DEVICE_WRITE_ERROR,
54    BLOCK_DEVICE_ERROR,
55};
56
57#endif /* BLOCK_DEVICE_REGS_H */
58
59// Local Variables:
60// tab-width: 4
61// c-basic-offset: 4
62// c-file-offsets:((innamespace . 0)(inline-open . 0))
63// indent-tabs-mode: nil
64// End:
65
66// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
67
Note: See TracBrowser for help on using the repository browser.