Age | Commit message (Collapse) | Author |
|
avoid the dynamic code generating syswr() in the hot path...
|
|
|
|
|
|
tested with 6205
|
|
The idea is that when we reboot, we zero out
memory written by processes that have the private
flag set (such as factotum and keyfs), and also
clear the secrmem pool, which contains TLS keys
and the state of the random number generator.
This is so the newly booted kernel or firmware
will not find these secret keys in memory.
|
|
The default configuration for "console=0" should go into CONFADDR
when using /dev/reboot.
|
|
|
|
|
|
|
|
The debug print contidion was wrong and would always
result in a debug print, even if the command just
timed out.
The R1b response seems to be handled internally by
the controller, so we do not need to wait for
datadone interrupt.
|
|
We want to support the internal emmc device on the reform,
which has a different initialization sequence from SDcard.
The problem is, all mmc controller drivers where using
the command index to derive the command properties.
The command index's interpretation depends on the
command set. And MMC has different commands then SD.
Also, there are the APP_CMD escaped commands which
drivers then tried to recover the state...
All of this is total nonsense... The controller drivers
should not care and the command properties should
be maintained by port/sdmmc.c.
So we pass the command as a struct SDiocmd, which
has all the properties (command index, response type,
data transfer mode... and even a string for debugging).
The controller just converts this into register values
and just executes the commands.
Next, the controller drivers shouldnt snoop on the
commands and then try to apply bus and frequency
switching on their own. This is now made explicit by
having SDio.bus(io, width, speed) function.
|
|
remove the global sdio struct and add a addmmcio() function
for drivers to register their controllers.
there is a SDio.aux pointer now where controller drivers
can stash a pointer to their private data.
SDio.init() also can signal that it wants to be called
again for more controllers by returning > 0 (see pc/pmmc.c).
this is in preparation for supporting the internal mmc
device in the mnt-reform which is hooked up to usdhc1.
|
|
We can get rid of a bunch of stuff now that we'r using a softscreen.
Get rid of the static Memimage and Memdata for the framebuffer;
just allocate gscreen as a memimage from the image pool.
Avoid exporting fbraw pointer, just have screeninit() return it.
Remove fbmemalloc() function. it used to create a write-thru
mapping but given that we are no more reading the framebuffer,
we can use ucalloc() instead.
|
|
|
|
|
|
For the reform kernel, we used to have a slightly modified
copy of port/usbxhci.c as the controller was implemented in
soc specific registers and requires some rocket science
initialization.
Instead, we want to have a common generic xhci driver (usbxhci)
and separate drivers that deal with the specific implementation
such as usbxhcipci and usbxhciimx.
|
|
The kernel used to always set console=0, which as
usefull during bring-up, but makes it impossible
to use the uart for other purposes.
We now have the ability to pass plan9.ini using
the u-boot script, so add the console=0 line there.
To make debugging easy, we still apply
console=0 if no plan9.ini has been passed.
|
|
We want to provide userspace PCI config space
access on platforms that have PCI, but do not
have ISA bus.
For this, provide a stripped down version of
devpnp, wiht only the pci support that can then
be used by pi4 (bcm64) and reform (imx8) kernels.
|
|
|
|
The previously reverted change has been reworked - things
get shut down in the right order, with clocks gated.
A lock is no longer needed either. The combined effect
is ~25mA saved when screen is off, compared to no changes.
|
|
|
|
|
|
Disabling LCDIF often produces flickering output at the top
of the LCD panel (timings going wrong?). Instead, just disable the
output on the bridge, which is much simpler, doesn't seem to cause
any issues, and saves enough power just as well.
|
|
Stop DOTCLK on interrupt after the current frame is done,
toggle PWM2.
|
|
|
|
remove useless stuff
|
|
|
|
|
|
kmesg
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
de-bloat the proc structure by allocating notes
with on the heap instead of embedding them in
the proc structure.
This saves around 640 bytes per process.
|
|
Handlin notes is common for all architectures
except how the note has to be pushed on the user
stack.
This change adds a popnote() function that returns
only the note string or nil if the process should
not be notified (no notes or user notes hold off).
Popnote() also handles common errors like notify
during note handling or missing note handler and
will suicide the process in that case.
|
|
|
|
|
|
The kernel stack is now above the Proc structure,
so the explicit kstack pointer can be eliminated.
|
|
procs come from the dynamic pools, so we don't need
to remove the memory used by possible procs from the
total available.
|
|
Treallocate the small data structures around procs eagerly,
but use malloc to allocate the large proc data structures
when we need them, which allows us to scale to many more procs.
There are still many scalability bottlenecks, so we only crank
up the nproc limit by a little bit this time around, and crank
it up more as we optimize more.
|
|
|
|
For "in" transactions, the "Total Bytes to Transfer" field in
the siTD is decremented by the controller by the actual transfer
size, so what remains in the field is the residue number of bytes.
Also, handle restart when we get a zero byte read on a isochronous
"in" endpoint in devusb itself (removing the restart code for
xhci drivers).
This fixes audio recording with a usb1.1 audio device connected
to ehci controller.
|
|
the RM seems to be outdated in this regard, saying
the core is targeted at 1.4ghz.
|
|
|
|
datasheet:
http://nxp.com/docs/en/data-sheet/PCF8523.pdf
|