Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							7d959af0a9 
							
						 
					 
					
						
						
							
							acpi: import and register ACPI driver with hal  
						
						 
						
						
						
						
					 
					
						2017-08-28 07:28:31 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							78d5fac550 
							
						 
					 
					
						
						
							
							acpi: probe for RSDT and enumerate/map other ACPI tables (inc. DSDT)  
						
						 
						
						
						
						
					 
					
						2017-08-28 07:28:31 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							49dfc5c9de 
							
						 
					 
					
						
						
							
							acpi: define structs for standard header and various ACPI tables  
						
						 
						
						
						
						
					 
					
						2017-08-28 07:28:27 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							7bcaf0ee8d 
							
						 
					 
					
						
						
							
							vmm: implement identity mapping function for contiguous physical mem regions  
						
						 
						
						... 
						
						
						
						vmm.IdentityMapRegion can be used by device drivers that want to
establish an identity mapping for a contiguous physical memory block in
order to access some hardware or table. 
						
						
					 
					
						2017-08-28 07:28:04 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							0a271b206b 
							
						 
					 
					
						
						
							
							pmm: implement FrameFromAddress  
						
						 
						
						... 
						
						
						
						This is equivalent to vmm.PageFromAddress but returns back a pmm.Frame 
						
						
					 
					
						2017-08-28 07:28:04 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							d17298acaa 
							
						 
					 
					
						
						
							
							vga_text: Map EGA color indices to correct DAC entries for the VGA hw  
						
						 
						
						
						
						
					 
					
						2017-08-19 10:33:38 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							b53912757c 
							
						 
					 
					
						
						
							
							Refactor hal code to use preferred driver detection order  
						
						 
						
						
						
						
					 
					
						2017-07-18 08:27:50 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							1ef27b3226 
							
						 
					 
					
						
						
							
							Update device drivers to use the device.RegisterDriver  
						
						 
						
						
						
						
					 
					
						2017-07-18 08:26:56 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							d180348116 
							
						 
					 
					
						
						
							
							Define DriverInfo and registration helpers  
						
						 
						
						
						
						
					 
					
						2017-07-18 08:23:43 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							37e32d9960 
							
						 
					 
					
						
						
							
							Provide correct implementation for cpu.FlushTLBEntry  
						
						 
						
						... 
						
						
						
						The previous version worked under qemu (or qemu does not implement TLB
caching) but caused an unrecoverable page fault when running under
virtualbox. 
						
						
					 
					
						2017-07-15 17:25:04 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							66d471f442 
							
						 
					 
					
						
						
							
							Defer kernel panic when Kmain returns  
						
						 
						
						
						
						
					 
					
						2017-07-14 08:05:59 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							ccba8877ce 
							
						 
					 
					
						
						
							
							Enable support for deferred calls  
						
						 
						
						
						
						
					 
					
						2017-07-14 08:05:54 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							eaeae85600 
							
						 
					 
					
						
						
							
							Implement LogoSetter interface for vesa fb driver  
						
						 
						
						
						
						
					 
					
						2017-07-13 23:35:20 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							c7fc9f0ac9 
							
						 
					 
					
						
						
							
							Add gopher logos (64, 96 and 128 pixels tall)  
						
						 
						
						... 
						
						
						
						The gopher images were obtained from: https://github.com/golang-samples/gopher-vector  
						
						
					 
					
						2017-07-13 23:35:20 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							4af2ed62a0 
							
						 
					 
					
						
						
							
							Display the best-fit logo on logo-capable console devices  
						
						 
						
						... 
						
						
						
						Logos can be disabled by passing the "consoleLogo=off" boot command line
parameter. 
						
						
					 
					
						2017-07-13 23:35:20 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							cb7ae66556 
							
						 
					 
					
						
						
							
							Define LogoSetter interface and BestFit selection helper  
						
						 
						
						
						
						
					 
					
						2017-07-13 23:35:20 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							a5c6828fc2 
							
						 
					 
					
						
						
							
							Create tool for converting images to compatible console logo files  
						
						 
						
						... 
						
						
						
						The tool processes an image and converts it to a logo.Image struct which
can be assigned to a logo-capable console. 
						
						
					 
					
						2017-07-13 23:35:20 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							540f288e61 
							
						 
					 
					
						
						
							
							Select appropriate font for console devices with font support  
						
						 
						
						... 
						
						
						
						The hal package automatically selects the best font from the list of
available fonts based on the console dimensions and the font priorities. The font
selection can be overriden by passing the "consoleFont" boot commandline
parameter to the kernel (e.g. consoleFont=terminus8x16) 
						
						
					 
					
						2017-07-13 23:35:20 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							d71c4c1eea 
							
						 
					 
					
						
						
							
							Add 8x16, 10x18 and 14x28 fonts based on the terminus font  
						
						 
						
						
						
						
					 
					
						2017-07-13 23:35:20 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							72feb11acb 
							
						 
					 
					
						
						
							
							Document exported symbols  
						
						 
						
						
						
						
					 
					
						2017-07-13 23:35:20 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							f4f3745073 
							
						 
					 
					
						
						
							
							Extend vesa driver support to 15 and 16bpp framebuffers  
						
						 
						
						
						
						
					 
					
						2017-07-13 23:35:20 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							f02c767257 
							
						 
					 
					
						
						
							
							Extend vesa driver to support 24 and 32 bpp  
						
						 
						
						
						
						
					 
					
						2017-07-13 23:35:20 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							13ba4bbbed 
							
						 
					 
					
						
						
							
							Implement vesa console driver for 8bpp framebuffers  
						
						 
						
						
						
						
					 
					
						2017-07-13 23:35:10 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							cbf0c82702 
							
						 
					 
					
						
						
							
							Change Dimensions() signature to support querying for characters or pixels  
						
						 
						
						
						
						
					 
					
						2017-07-13 22:06:50 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							952d0bf4a5 
							
						 
					 
					
						
						
							
							Define FontSetter interface, the Font type and helper methods  
						
						 
						
						... 
						
						
						
						The helper methods provide support for selecting the best-fit font for
the console dimensions and for looking up a font by name. 
						
						
					 
					
						2017-07-13 22:06:50 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							6195f3fc3b 
							
						 
					 
					
						
						
							
							Setup a more granular PDT based on the ELF image section addresses  
						
						 
						
						
						
						
					 
					
						2017-07-13 06:35:22 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							cc4364f55c 
							
						 
					 
					
						
						
							
							Pass the virtual page offset for the kernel to kernel.Kmain  
						
						 
						
						... 
						
						
						
						Ths page offset is defined in arch/XXX/constants.inc and needs to be
passed to the kernel so we can correctly calculate the physical frame
addresses that correspond to the ELF section virtual memory addresses. 
						
						
					 
					
						2017-07-13 00:08:40 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							a2d58f8949 
							
						 
					 
					
						
						
							
							Switch to a visitor-based no-alloc implementation for fetching ELF sections  
						
						 
						
						... 
						
						
						
						This change is required as the code to create a new PDT should execute
before the Go allocator is bootstrapped. 
						
						
					 
					
						2017-07-13 00:08:40 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							fdd5611220 
							
						 
					 
					
						
						
							
							Fix bug in the ASM code used to load the PDT to the CR2 register  
						
						 
						
						... 
						
						
						
						The previous implementation in Go assembly did not translate to the
correct assembly instructions for loading CR2 
						
						
					 
					
						2017-07-13 00:08:40 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							9d2e53bac4 
							
						 
					 
					
						
						
							
							Redirect runtime.init to an empty stub  
						
						 
						
						
						
						
					 
					
						2017-07-13 00:08:35 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							a79be7c268 
							
						 
					 
					
						
						
							
							Support parsing of 64-bit ELF section tags off from the multiboot data  
						
						 
						
						
						
						
					 
					
						2017-07-10 19:08:28 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							af9613e336 
							
						 
					 
					
						
						
							
							Support extraction of boot cmdline off the multiboot data  
						
						 
						
						
						
						
					 
					
						2017-07-10 19:05:49 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							5ef344010b 
							
						 
					 
					
						
						
							
							Support parsing of framebuffer color info out of the multiboot data  
						
						 
						
						
						
						
					 
					
						2017-07-10 19:05:01 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							13ef4cd08d 
							
						 
					 
					
						
						
							
							Map physical address of the vga text console framebuffer in DriverInit  
						
						 
						
						... 
						
						
						
						Currently, the kernel can write to 0xb80000 because this is part of the
initial identify mapping set up by the rt0 code. When we establish new
mappings for the kernel using its real VMA address then writes to the
framebuffer will cause a page fault unless we explicitly map it. 
						
						
					 
					
						2017-07-08 22:18:24 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							8ac2ba82cc 
							
						 
					 
					
						
						
							
							Implement function for mapping a contiguous physical memory region  
						
						 
						
						... 
						
						
						
						The MapRegion function can be used by device drivers to ensure that they
can access memory mapped by the various devices. 
						
						
					 
					
						2017-07-08 22:17:34 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							1b697fd125 
							
						 
					 
					
						
						
							
							Pass PrefixWriter with driver name and version to DriverInit calls  
						
						 
						
						
						
						
					 
					
						2017-07-08 22:09:19 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							3485523cdc 
							
						 
					 
					
						
						
							
							Update the Driver.DriverInit method signature to accept an io.Writer  
						
						 
						
						... 
						
						
						
						Drivers can use the writer as an argument to kfmt.Fprintf to log
additional output during their initialization. 
						
						
					 
					
						2017-07-08 22:09:19 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							da279cf3ff 
							
						 
					 
					
						
						
							
							Implement PrefixWriter  
						
						 
						
						... 
						
						
						
						PrefixWriter is a passthrough io.Writer that prepends a prefix to the
beginning of each line. 
						
						
					 
					
						2017-07-08 22:09:13 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							b1084c1362 
							
						 
					 
					
						
						
							
							Fix broken unit tests  
						
						 
						
						
						
						
					 
					
						2017-07-08 13:02:15 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							ffb8f86a9c 
							
						 
					 
					
						
						
							
							Each driver should manually register a probe function for use by hal  
						
						 
						
						... 
						
						
						
						This commit removes the HWProbes() function from the console and tty
packages and replaces it with a global ProbeFuncs slice which is fetched
by the hal package when the hardware autodetection code runs.
Each driver should provide an init() function that appends a probe function
to the global ProbeFuncs slice.
This approach allows us to support conditional compilation of drivers in
the future (e.g. using build tags) 
						
						
					 
					
						2017-07-08 12:26:40 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							4845f7a4ca 
							
						 
					 
					
						
						
							
							Use uint32 instead of uint16 for TTY coordinates  
						
						 
						
						
						
						
					 
					
						2017-07-08 12:26:40 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							fd3ca91138 
							
						 
					 
					
						
						
							
							Use uint32 for console coordinates and fix dimension bug  
						
						 
						
						
						
						
					 
					
						2017-07-08 12:26:40 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							562fae2028 
							
						 
					 
					
						
						
							
							Detect hw and wire active console and TTY  
						
						 
						
						
						
						
					 
					
						2017-07-07 21:37:00 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							eca1f6c26e 
							
						 
					 
					
						
						
							
							Change early.Printf calls to kfmt.Printf  
						
						 
						
						
						
						
					 
					
						2017-07-07 21:37:00 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							545a18fccc 
							
						 
					 
					
						
						
							
							Support pluggable output sinks for Printf with a ring-buffer fallback  
						
						 
						
						... 
						
						
						
						The implementation of Printf has been moved from the early package to
the kfmt package. The dependency to ActiveTerminal has been removed and
the code now uses an io.Writer for its output. As Go interfaces cannot
be used before bootstrapping the Go runtime, the code uses a ring-buffer
fallback for storing any kernel output emitted before that point. 
						
						
					 
					
						2017-07-07 21:37:00 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							f691d75b29 
							
						 
					 
					
						
						
							
							Implement ring-buffer for capturing early printf output  
						
						 
						
						... 
						
						
						
						The ring-buffer implements both io.Reader and io.Writer and uses a fixed
size of 2048 bytes (set by the ringBufferSize constant). This provides
enough space to hold a standard 80x25 screen's output. 
						
						
					 
					
						2017-07-07 21:37:00 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							0f3af2e78d 
							
						 
					 
					
						
						
							
							Refactor VT implementation  
						
						 
						
						... 
						
						
						
						This commit refactors the old VT implementation to work with the revised
TTY interface and adds support for:
- scrollback
- terminal state handling
When a terminal becomes activated, it overwrites the attached console
contents with the contents of its viewport. 
						
						
					 
					
						2017-07-07 21:37:00 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							78c87ab165 
							
						 
					 
					
						
						
							
							Cleanup and revise TTY interface  
						
						 
						
						
						
						
					 
					
						2017-07-07 21:37:00 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							286b8d9c71 
							
						 
					 
					
						
						
							
							Rename Ega console to VgaTextConsole and implement the updated interface  
						
						 
						
						
						
						
					 
					
						2017-07-07 21:36:50 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Achilleas Anagnostopoulos 
							
						 
					 
					
						
						
						
						
							
						
						
							b72725742a 
							
						 
					 
					
						
						
							
							Revise console interface  
						
						 
						
						
						
						
					 
					
						2017-07-07 06:25:24 +01:00