summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal <amlal.elmahrouss@icloud.com>2025-02-17 09:15:11 +0100
committerAmlal <amlal.elmahrouss@icloud.com>2025-02-17 09:15:11 +0100
commitcd4fc8a1d68a487439fc7e5bffd423974ba3a95f (patch)
treeb6fefa96248c0c93f7a960227eda4da4372f1ace
parent8abfbf50f6f0cca4184cfb602a68027f99d500ca (diff)
ADD: MBCI design is done. an HCI protocol.
Signed-off-by: Amlal <amlal.elmahrouss@icloud.com>
-rw-r--r--dev/Kernel/HALKit/AMD64/Storage/PIO.cc4
-rw-r--r--dev/Kernel/HALKit/AMD64/Storage/SATA.cc6
-rw-r--r--dev/Kernel/HALKit/ARM64/Processor.h2
-rw-r--r--dev/Mod/MBCI/MBCI.h14
-rw-r--r--dev/Usr/LibCF/Atom.h4
-rw-r--r--dev/Usr/LibCF/Ref.h2
6 files changed, 23 insertions, 9 deletions
diff --git a/dev/Kernel/HALKit/AMD64/Storage/PIO.cc b/dev/Kernel/HALKit/AMD64/Storage/PIO.cc
index 4965b932..0b19b373 100644
--- a/dev/Kernel/HALKit/AMD64/Storage/PIO.cc
+++ b/dev/Kernel/HALKit/AMD64/Storage/PIO.cc
@@ -90,7 +90,7 @@ ATAInit_Retry:
rt_out8(OutBus + ATA_REG_COMMAND, ATA_CMD_IDENTIFY);
drv_std_wait_io(IO);
-
+
/// fetch serial info
/// model, speed, number of sectors...
@@ -98,7 +98,7 @@ ATAInit_Retry:
{
kATAData[i] = Kernel::HAL::rt_in16(OutBus + ATA_REG_DATA);
}
-
+
for (Kernel::Int32 i = 0; i < 20; i++)
{
kCurrentDiskModel[i * 2] = kATAData[27 + i] >> 8;
diff --git a/dev/Kernel/HALKit/AMD64/Storage/SATA.cc b/dev/Kernel/HALKit/AMD64/Storage/SATA.cc
index f0d99d31..7f8f8a5d 100644
--- a/dev/Kernel/HALKit/AMD64/Storage/SATA.cc
+++ b/dev/Kernel/HALKit/AMD64/Storage/SATA.cc
@@ -82,7 +82,7 @@ static Kernel::Void drvi_calculate_disk_geometry() noexcept
kout << "Disk Size: " << Kernel::number(drv_get_size()) << endl;
kout << "Highest Disk LBA: " << Kernel::number(kCurrentDiskSectorCount) << endl;
- delete [] identify_data;
+ delete[] identify_data;
}
/// @brief Initializes an AHCI disk.
@@ -236,10 +236,10 @@ static Kernel::Void drvi_std_input_output(Kernel::UInt64 lba, Kernel::UInt8* buf
if (kSATA->Is & kHBAErrTaskFile)
Kernel::ke_panic(RUNTIME_CHECK_BAD_BEHAVIOR, "AHCI Read disk failure, faulty component.");
- kSATA->Ports[kSATAPortIdx].Ie = 1;
+ kSATA->Ports[kSATAPortIdx].Ie = 1;
kSATA->Ports[kSATAPortIdx].Cmd = kHBAPxCmdFR | kHBAPxCmdST;
- kSATA->Ports[kSATAPortIdx].Ci = (1 << slot);
+ kSATA->Ports[kSATAPortIdx].Ci = (1 << slot);
while (!drv_is_ready())
;
diff --git a/dev/Kernel/HALKit/ARM64/Processor.h b/dev/Kernel/HALKit/ARM64/Processor.h
index 41e96c19..023b6bfb 100644
--- a/dev/Kernel/HALKit/ARM64/Processor.h
+++ b/dev/Kernel/HALKit/ARM64/Processor.h
@@ -79,7 +79,7 @@ namespace Kernel::HAL
inline Void hal_wfi(Void)
{
- asm volatile ("wfi");
+ asm volatile("wfi");
}
} // namespace Kernel::HAL
diff --git a/dev/Mod/MBCI/MBCI.h b/dev/Mod/MBCI/MBCI.h
index 1857de47..c9ce73fb 100644
--- a/dev/Mod/MBCI/MBCI.h
+++ b/dev/Mod/MBCI/MBCI.h
@@ -47,10 +47,12 @@ namespace Kernel
UInt16 HostFlags;
UInt8 Error;
UInt32 MMIOTest;
+ UInt16 State;
UInt8 Status;
UInt8 InterruptEnable;
UInt64 BaseAddressRegister;
UInt64 BaseAddressRegisterSize;
+ UInt32 CommandIssue;
Char Zero[kMBCIZeroSz];
};
@@ -79,6 +81,18 @@ namespace Kernel
kMBCIHostKindStartExtended, // Extended vendor table limit.
};
+ enum MBCIHostState
+ {
+ kMBCIHostStateInvalid,
+ kMBCIHostStateReset,
+ kMBCIHostStateSuccess,
+ kMBCIHostStateReady,
+ kMBCIHostStateDmaStart,
+ kMBCIHostStateDmaEnd,
+ kMBCIHostStateFail,
+ kMBCIHostStateCount,
+ };
+
/// @brief An AuthKey is a context used to decrpy data from an MBCI packet.
typedef UInt64 MBCIAuthKeyType;
} // namespace Kernel
diff --git a/dev/Usr/LibCF/Atom.h b/dev/Usr/LibCF/Atom.h
index 9dde247e..dbb90c40 100644
--- a/dev/Usr/LibCF/Atom.h
+++ b/dev/Usr/LibCF/Atom.h
@@ -14,7 +14,7 @@ namespace LibCF
{
public:
explicit CFAtom() = default;
- ~CFAtom() = default;
+ ~CFAtom() = default;
public:
CFAtom& operator=(const CFAtom&) = delete;
@@ -25,7 +25,7 @@ namespace LibCF
{
return (fArrayOfAtoms & (1 << bit));
}
-
+
void operator|(SizeT bit)
{
fArrayOfAtoms |= (1 << bit);
diff --git a/dev/Usr/LibCF/Ref.h b/dev/Usr/LibCF/Ref.h
index 5ad694a8..46d8ac51 100644
--- a/dev/Usr/LibCF/Ref.h
+++ b/dev/Usr/LibCF/Ref.h
@@ -80,7 +80,7 @@ namespace LibCF
class CFNonNullRef final
{
public:
- CFNonNullRef() = delete;
+ CFNonNullRef() = delete;
CFNonNullRef(nullPtr) = delete;
CFNonNullRef(T* ref)